请参阅下面的更新。
我正在编写一个调整并且正在使用 AppList。我正在关注聚光灯并为所有已安装的应用程序创建一个表格。我正在尝试使用 dataSource 来获取信息(显示标识符等)。问题是如果定义了 dataSource ......我收到以下错误:
SpringBoard[1622]
或
SpringBoard[1890] <警告>: ***** AltKeyboard Uncaught Exception: *** -[__NSArrayM objectAtIndex:]: index 2 beyond bounds [0 .. 1] *****
SpringBoard [1890] <错误>:***由于未捕获的异常'NSRangeException'而终止应用程序,原因:'*** - [__NSArrayM objectAtIndex:]:索引2超出范围[0 .. 1]'
*** 首先抛出调用堆栈:
如果未定义 dataSource 并且我使用假数据(测试名称),则可以正常生成表。当我打印数据源时,里面只有两个项目。
IRC 上的 Ryan Petrich 似乎暗示我做的一切都完全错误,但在那之后并没有太大帮助。也许我正在错误地解决这个问题?
代码:http://pastebin.ca/2457626
存储库:https://github.com/twodayslate/ListLauncher
编辑/更新!
dataSource 给我带来了问题。它没有获取相同数量的应用程序,因此我收到了索引错误等。我有 200 多个应用程序,但 dataSource 只获取 2 个。
以下代码没有给出错误,但只显示 2 项:http://pastebin.ca/2458961
编辑! 我改变了它,所以我只使用 ALApplicationList。我能够列出所有应用程序。但是,当我尝试滚动表格时,它会崩溃。排序和创建列表真的很慢,所以我相信这可能会导致问题。我不是 obj-c 的专家,所以我确信有比我正在做的更好的方法。 http://pastebin.ca/2459318
你的问题是双重的。首先,UITableView
期望得到包含行和节的索引路径,而您只提供了一行。其次,您不能期望未经检查的数组访问 100% 成功,因此边界检查您可能使用的任何访问调用。在代码中的 iVar 分配中使用一些保留也没有什么坏处,除非您不需要保留对它的引用(但看起来确实如此)。
关于ios - 使用 AppList 数据源的 -[NSIndexPath 行] 中的断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18972962/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |