我从课程网站下载了Smasthag演示应用程序.项目构建正常(在Twitter,TwitterRequest等类的小变化之后,因为我使用最新的Xcode 7b4)并且在模拟器上工作正常(我还必须添加NSAppTransportSecurity密钥info.plist),但不在设备上 - 它不会获取推文.我在带有iOS 9 Public Beta的iPhone 6和带有iOS 8.4的iPad 2上进行了测试.此外,当app在模拟器中运行并且我更改了hashtag以进行搜索时,整个tableView会重新加载新的推文,但在控制台中我得到了这个:
2015-07-23 03:24:15.560 Smashtag[25991:4344251] _BSMachError: (os/kern) invalid capability (20)
2015-07-23 03:24:15.560 Smashtag[25991:4344251] _BSMachError: (os/kern) invalid name (15)
Run Code Online (Sandbox Code Playgroud)
应用仍然运行正常,但这个错误让我感到困扰.我对谷歌中的这个_BSMachError一无所知(只有一条孤独的印尼语推文).我不知道为什么app不能在设备上获取推文.
这似乎是一个iOS 9 Beta错误.它肯定与UIKeyboard(系统一)的呈现和解雇有关.并且,它始终不会发生.
它是无害的,只是烦人的.该错误可能会在下一个测试版中解决,因为它在核心系统对象中.
您需要将NSAppTransportSecurity添加为字典,并且第一个子节点应该是名为NSAllowsArbitraryLoads的bool设置为YES.请注意,这会选择NSAppTransportSecurity功能.
请参阅此处的App Transport Security配置说明.请注意,如果您想完全退出,则此文档是全新的,并且包含错误.错误是NSAllowsArbitraryLoads键未显示为NSAppTransportSecurity的直接子项.
理想情况下,您应该做的是设置适当的列入白名单的域和安全设置.
要解决此问题,您应将语言环境设置为en_US.
将Tweet.swift中的私有扩展名asTwitterDate更改为以下内容以修复非en_US设备上的问题.
...
private extension String {
var asTwitterDate: NSDate? {
get {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "EEE MMM dd HH:mm:ss Z yyyy"
dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
let createdAt = dateFormatter.dateFromString(self)
return createdAt
}
}
}
Run Code Online (Sandbox Code Playgroud)
在此之后,您的应用程序应加载并正确显示所有数据.
| 归档时间: |
|
| 查看次数: |
10707 次 |
| 最近记录: |