• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 使用 AppList 数据源的 -[NSIndexPath 行] 中的断言失败

[复制链接]
菜鸟教程小白 发表于 2022-12-13 04:14:11 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

请参阅下面的更新。

我正在编写一个调整并且正在使用 AppList。我正在关注聚光灯并为所有已安装的应用程序创建一个表格。我正在尝试使用 dataSource 来获取信息(显示标识符等)。问题是如果定义了 dataSource ......我收到以下错误:

SpringBoard[1622] : *** Assertion failure in -[NSIndexPath row],/SourceCache/UIKit/UIKit-2380.17/UITableViewSupport.m:2680 SpringBoard[1622] <警告>: ***** AltKeyboard 未捕获异常:与 UITableView 一起使用的索引路径无效。传递给 TableView 的索引路径必须恰好包含两个指定节和行的索引。如果可能,请使用 UITableView.h 中 NSIndexPath 上的类别。 *****

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



Best Answer-推荐答案


你的问题是双重的。首先,UITableView 期望得到包含行和节的索引路径,而您只提供了一行。其次,您不能期望未经检查的数组访问 100% 成功,因此边界检查您可能使用的任何访问调用。在代码中的 iVar 分配中使用一些保留也没有什么坏处,除非您不需要保留对它的引用(但看起来确实如此)。

关于ios - 使用 AppList 数据源的 -[NSIndexPath 行] 中的断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18972962/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap