【发布时间】:2015-10-13 16:56:19
【问题描述】:
我从course's site 下载了 Smasthag 演示应用程序。项目构建良好(在 Twitter、TwitterRequest 等类的小改动之后,因为我使用最新的 Xcode 7b4)并且在模拟器上运行良好(我还必须将 NSAppTransportSecurity 键添加到 info.plist),但不是在设备上 -它不获取推文。我在带有 iOS 9 Public Beta 的 iPhone 6 和带有 iOS 8.4 的 iPad 2 上测试了它。此外,当应用程序在模拟器中运行并且我将主题标签更改为搜索时,整个 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 无能为力(只有一条孤独的印尼推文)。我也不明白为什么应用不能在设备上获取推文。
【问题讨论】:
-
所以我发现了为什么应用程序没有在设备上获取推文。实际上它正在获取推文,但无法将它们转换为其内部数据结构。问题出在 Twitter class=
asTwitterDate提供的字符串扩展中。它使用NSDateFormatter从字符串中获取日期。扩展隐含地假设格式化程序语言环境是英语(对于模拟器来说是正确的),而我的设备语言环境是波兰语。将代码中的语言环境显式设置为英语解决了该问题。 -
你是对的。在 Tweet.swift 中更改语言环境解决了这个问题。谢谢!发布代码来解决这个问题。