草庐IT

swift_FORCE_LOAD

全部标签

swift - 为什么 Swift 不允许非可选类型的弱引用?

这不是纯粹的好奇,感觉我可能对Swift中的弱引用有一些误解。假设我从ViewController创建一个类并将其引用传递给初始化程序:class=MyClass(vc:self)由于Storyboard和窗口已经保留了对此ViewController的引用,因此MyClass对其进行弱引用似乎是合乎逻辑的(出于类似的原因,在IB中创建的所有引用默认情况下都是弱引用):classMyClass:NSObject{privateweakvarviewController:UIViewControllerinit(vc:UIViewController){self.viewControll

swift - 将时间字符串转换为同一天的 Unix 时间日期

如何将字符串小时数转换为一天中的毫秒数?例如:letstrDate="06:00PM"或者:letstrDate="09:00AM"我的代码:letdateString="06:00PM"letdateFormatter=DateFormatter()dateFormatter.dateFormat="HH:mm"guardletdate=dateFormatter.date(from:dateString)else{fatalError()}print(date)例如我的字符串是:06:00PM,所以我想以毫秒为单位的日期是今天2018年9月20日星期四下午06:00

ios - 在没有 IBOutlets 的情况下以编程方式更新布局约束 - Swift

我正在尝试通过在点击“打开”按钮时更改左anchor约束来制作滑出菜单。我见过有人在约束上使用IBOutlets来做到这一点,但我正在使用的View是完全以编程方式制作的,阻止了我这样做。View最初位于屏幕之外,所以我认为我可以在点击“打开”按钮时更改约束,但下面的代码什么也没做。@objcfuncslideMenu(){sideMenu.leftAnchor.constraint(equalTo:view.leftAnchor,constant:0).isActive=trueview.setNeedsUpdateConstraints()}有没有办法在没有IBOutlet的情况下

swift - 如何在 Swift 中过滤对象数组?

您好,我有一个Book对象数组,我正在尝试返回所有由tags属性过滤的Books。例如varbooks=[(title="TheDaVinciCode",tags="Religion,Mystery,Europe"),(title="TheGirlWiththeDragonTatoo",tags="Psychology,Mystery,Thriller"),(title="Freakonomics",tags="Economics,non-fiction,Psychology")}]我想找到与标签Psychology相关的书籍,(title="TheGirlWiththeDragonT

swift - 使用 Vapor 框架建立数据库连接

我正在尝试使用Swift构建API,并且我选择使用Vapor。我已经创建了一个SQLite数据库,并且能够使用数据库客户端连接到它。现在我希望我的SwiftVapor项目也使用FluentSQLite包连接到它。我已经在项目的根文件夹中创建了我的数据库:/Users/rutgerhuijsmans/Documents/runk-3.0我的数据库叫做runk-3.0-database文件夹看起来像这样:我尝试使用以下配置连接到我的数据库:importFluentSQLiteimportVapor///Calledbeforeyourapplicationinitializes.publi

swift - 为什么并行测试在 Xcode 10 中默认不可用?

我想知道Xcode10是否有并行测试这样好的功能,为什么默认情况下它是关闭的?如果有任何情况我最好关闭此功能进行测试? 最佳答案 如果您的测试用例以任何方式相互交互,那么并行运行它们将导致间歇性故障。一个非常常见的例子是,如果单元测试与数据库一起工作,并且每个测试都不会创建唯一的数据库。开发人员未能仔细考虑测试交互是很常见的,如果并行运行许多现有测试套件肯定会失败。 关于swift-为什么并行测试在Xcode10中默认不可用?,我们在StackOverflow上找到一个类似的问题:

swift - 如何处理 500 个 http 错误

我正在尝试使用URLSession.shared.dataTask函数访问类HTTPURLResponse(URLResponse)中的500个错误的自定义服务器响应主体.我只能访问statusCode和allHeaderFields但它似乎没有帮助。java中ex的等价物。是HttpURLConnection.getErrorStream(),但我无法在纯swift中找到类似的东西(我想在不使用第3方库的情况下解决这个问题)。如何获取500错误的文本响应? 最佳答案 lettask=session.dataTask(with:ur

Swift:使用 AVPlayer 播放音频 - 音频未播放,听不到音频

我正在使用AVPlayer仅播放mp3音频文件。我正在使用我测试过并且工作正常的url。我需要使用AVPlayer,因为我需要以编程方式设置UISlider,而且AVPlayer很方便。UISlider在音频播放时工作和更新。音频可能正在播放,但我听不到声音。我这样说是因为UISlider正在工作。更新:您可以在模拟器上构建应用程序时听到音频。在设备上构建它时出现问题-我的是XSMAX。屏幕录制链接->访问:https://streamable.com/nkbn8我已经尝试使用与AVAudioPlayer相同的URL和音频播放,你可以听到它。privatefuncsetupAudioC

swift - 获取语​​言环境日期格式信息

使用Swift4,有没有办法获取语言环境日期格式的字符串表示形式?根据iPhone的区域设置,我想知道格式是yyyy/mm/dd还是mm/dd/yyyy。我已经找到了所有更改日期格式或从区域设置格式获取日期的方法,但无法弄清楚如何获取实际格式。 最佳答案 使用DateFormatterdateFormat(fromTemplate:options:locale:)。letuserFormat=DateFormatter.dateFormat(fromTemplate:"yyyyMMdd",options:0,locale:Local

swift - 'let' 属性不能直接初始化;使用 "self.init(...)"或 "self = ..."代替

我想尝试在protocol扩展中编写一个默认的init,所以我这样做了:protocolP{vardata:[AnyHashable:Any]{get}init(_s:String)}extensionP{init(_s:String){self.data=["s":s]}}但是我收到了这个错误:'let'property'data'maynotbeinitializeddirectly;use"self.init(...)"or"self=..."instead我不知道这是什么意思。感谢您的帮助! 最佳答案 该错误表明该变量无法在