美文网首页
关于 NSIndexPath的一个细

关于 NSIndexPath的一个细

作者: 海边漫步的我 | 来源:发表于2017-08-17 18:42 被阅读405次

首先解释一下:
NSIndexPath 是一个对象,它用来表示一个树形的记录地址。
提到UITableView,就必须的说一说NSIndexPath。UITableView声明了一个NSIndexPath的类别,主要用 来标识当前cell的在tableView中的位置,该类别有section和row两个属性,前者标识当前cell处于第几个section中,后者代 表在该section中的第几行。该对象一般用于tableview中cell的单选,例如以下选择支付方式的代码:

//默认选中第1段第0行
NSIndexPath *defaultIndexPath = [NSIndexPath indexPathForRow:0 inSection:1];
   [self tableView:self.paymentTableView didSelectRowAtIndexPath:defaultIndexPath];

其实我主要想说的是关于NSIndexPath的属性修饰关的键字问题:
(1)用strong修饰
@property (nonatomic, strong) NSIndexPath *selIndex;
(2)用assign修饰
@property (nonatomic, assign) NSIndexPath *selIndex;
以上第二种写法会在ios8.0上崩溃,在ios9.0以上机型正常,我之前一直在ios10.0以上的机型测试(主要测试机也没有8.0的,主要是我们还有一部分用户的机型是8.0的),没有注意到这个问题。
NSIndexPath是继承NSObject的,是模型对象,要用strong来修饰,至于在ios8.0以上没有崩溃,应该是8.0以上做了适配。我犯了这个错,希望大家不要犯这样的错。

相关文章

网友评论

      本文标题: 关于 NSIndexPath的一个细

      本文链接:https://www.haomeiwen.com/subject/inrnrxtx.html