菜鸟教程小白 发表于 2022-12-13 04:14:11

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


                                            <p><p>请参阅下面的更新。</p>

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

<p><code>
SpringBoard <Warning>: *** Assertion failure in -,/SourceCache/UIKit/UIKit-2380.17/UITableViewSupport.m:2680
SpringBoard <警告>: ***** AltKeyboard 未捕获异常:与 UITableView 一起使用的索引路径无效。传递给 TableView 的索引路径必须恰好包含两个指定节和行的索引。如果可能,请使用 UITableView.h 中 NSIndexPath 上的类别。 *****
</code><br/>
或<br/>
<code>
SpringBoard <警告>: ***** AltKeyboard Uncaught Exception: *** -: index 2 beyond bounds *****
SpringBoard <错误>:***由于未捕获的异常'NSRangeException'而终止应用程序,原因:'*** - :索引2超出范围'
      *** 首先抛出调用堆栈:
</code></p>

<p>如果未定义 dataSource 并且我使用假数据(测试名称),则可以正常生成表。当我打印数据源时,里面只有两个项目。</p>

<p>IRC 上的 Ryan Petrich 似乎暗示我做的一切都完全错误,但在那之后并没有太大帮助。也许我正在错误地解决这个问题?</p>

<p>代码:<a href="http://pastebin.ca/2457626" rel="noreferrer noopener nofollow">http://pastebin.ca/2457626</a> <br/>
存储库:<a href="https://github.com/twodayslate/ListLauncher" rel="noreferrer noopener nofollow">https://github.com/twodayslate/ListLauncher</a> </p>

<p><strong>编辑/更新!</strong>
dataSource 给我带来了问题。它没有获取相同数量的应用程序,因此我收到了索引错误等。我有 200 多个应用程序,但 dataSource 只获取 2 个。<br/>
以下代码没有给出错误,但只显示 2 项:<a href="http://pastebin.ca/2458961" rel="noreferrer noopener nofollow">http://pastebin.ca/2458961</a> </p>

<p><strong>编辑!</strong>
我改变了它,所以我只使用 ALApplicationList。我能够列出所有应用程序。但是,当我尝试滚动表格时,它会崩溃。排序和创建列表真的很慢,所以我相信这可能会导致问题。我不是 obj-c 的专家,所以我确信有比我正在做的更好的方法。 <a href="http://pastebin.ca/2459318" rel="noreferrer noopener nofollow">http://pastebin.ca/2459318</a> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>你的问题是双重的。首先,<code>UITableView</code> 期望得到包含行和节的索引路径,而您只提供了一行。其次,您不能期望未经检查的数组访问 100% 成功,因此边界检查您可能使用的任何访问调用。在代码中的 iVar 分配中使用一些保留也没有什么坏处,除非您不需要保留对它的引用(但看起来确实如此)。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用 AppList 数据源的 - 中的断言失败,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/18972962/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/18972962/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用 AppList 数据源的 -[NSIndexPath 行] 中的断言失败