我从course's site下载了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)
应用程序仍然运行良好,但此错误让我感到困扰。我对谷歌中的这个_BSMachError一无所知(只有一条孤独的印尼语推文)。我不知道为什么app不能在设备上获取推文。
答案 0 :(得分:8)
这似乎是一个iOS 9 Beta错误。它肯定与UIKeyboard(系统一)的呈现和解雇有关。而且,它并没有一直发生。
它无害,只是烦人。该错误可能会在下一个测试版中解决,因为它位于核心系统对象中。
答案 1 :(得分:5)
您需要将NSAppTransportSecurity添加为字典,并且第一个子节点应该是名为NSAllowsArbitraryLoads的bool设置为YES。请注意,这会选择NSAppTransportSecurity功能。
请在此处查看App Transport Security配置说明。请注意,如果您想完全退出,则此文档是全新的,并且包含错误。错误是NSAllowsArbitraryLoads键未显示为NSAppTransportSecurity的直接子项。
理想情况下,您应该设置相应的列入白名单的域和安全设置。
答案 2 :(得分:5)
要解决此问题,您应将区域设置设置为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
}
}
}
在此之后,您的应用程序应加载并正确显示所有数据。
答案 3 :(得分:0)
我遇到了同样的问题,因为我将键盘从系统键盘切换到自定义键盘。但是它不会影响我的应用程序运行。
答案 4 :(得分:0)
如果该控件中的任何组件有任何opaque属性,只需删除它并使用隐藏属性。
示例:
//invisibleTextView.alpha = 0.0f;
invisibleTextView.hidden = YES;