gpt4 book ai didi

ios - 具有混合静态/动态内容的 UITableViewController 中的 NSRangeException

转载 作者:可可西里 更新时间:2023-11-01 04:21:24 25 4
gpt4 key购买 nike

使用 iOS6 和 Storyboard,我有一个包含 3 个部分的 UITableViewController。

前两部分是静态的,第三部分是动态的。

我已经重写了 numberOfRowsInSectioncellForRowAtIndexPathheightForRowAtIndexPath 以正确地推迟第 0 和 1 部分的 super,并从我的返回适当的值第 2 部分的数据模型。

当我的数据中的行数超过第三部分的 Storyboard 中配置的行数时,我仍然在 main() 中得到 NSRangeException:

'NSRangeException',原因:'*** -[__NSArrayI objectAtIndex:]:索引 1 超出范围 [0 .. 0]'
*** 首先抛出调用栈:
(0x22f3012 0x178ae7e 0x22a8b44 0xb0ece4 0x8feee3 0x784f13 0x71940c 0x784a7b 0x789919 0x7899cf 0x7721bb 0x782b4b 0x71f2dd 0x179e6b0 0x558fc0 0x54d33c 0x54d150 0x4cb0bc 0x4cc227 0x4cc8e2 0x22bbafe 0x22bba3d 0x22997c2 0x2298f44 0x2298e1b 0x26867e3 0x2686668 0x6ceffc 0x2c4d 0x2b75)
libc++abi.dylib:终止调用抛出异常

我必须覆盖哪些父类(super class)方法才能防止发生此异常?

最佳答案

我缺少的实现是:

-(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath {
返回 0;
}

这意味着总共有四种方法必须覆盖才能将动态行为注入(inject)静态原型(prototype) UITableViewController:

  1. -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;

  2. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

  3. -(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

  4. -(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath

希望这可以节省一些时间。

关于ios - 具有混合静态/动态内容的 UITableViewController 中的 NSRangeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16063501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com