我的 NSIndexPath 属性保持未设置是不是可以?

Posted

技术标签:

【中文标题】我的 NSIndexPath 属性保持未设置是不是可以?【英文标题】:Is it OK for my NSIndexPath property to remain unset?我的 NSIndexPath 属性保持未设置是否可以? 【发布时间】:2011-04-13 15:25:51 【问题描述】:

当我想在表格中添加或编辑值时,我使用模态视图控制器。编辑时,我在模态视图控制器上设置了一个 NSIndexPath 属性,以便它知道要更新哪个项目。但是在添加新项目时,没有要发送的 NSIndexPath 值,因此该属性保持未设置。

像这样不设置属性有什么问题吗?它不允许我将其设置为“nil”。

【问题讨论】:

【参考方案1】:

首先,为什么不能设置为nil?这应该不是问题。

其次,当一个对象占用的内存在分配时被清零。这意味着当你创建一个对象时,所有的实例变量都被设置为 0、NULL、nil(都只是 0)。因此,除非您修改实例变量(或引用 ivar 的属性),否则它将为零。

【讨论】:

这很奇怪。在我打电话给viewController.editingIndexPath = nil; 之前,我收到了一条错误消息。 (这与 NSIndexPath 不接受“void”有关)。我只是取消注释它以查看错误消息是什么,一切看起来都很好。一定是 XCode 4 玩起来了。感谢您的帮助。 啊啊啊我知道是什么了。我在设置属性时忘记输入*。我忘了我在写这个问题和现在之间已经解决了这个问题。【参考方案2】:

应该没问题。我认为该属性已初始化为零。因此,在您的模态视图控制器的 dealloc 方法中,在 nil 对象上调用 release 是无操作的。

或者,为了安全起见,在模态视图控制器的 init 方法中,将属性设置为 nil,例如self.myIndexPath = 无。应该可以的。

【讨论】:

以上是关于我的 NSIndexPath 属性保持未设置是不是可以?的主要内容,如果未能解决你的问题,请参考以下文章

NSIndexPath 不将项目、部分或行识别为属性

将NSIndexPath传递给新视图

通过 reloadData 更新 UITableView 时保持选择

UITableViewCell 保持突出显示是不是违反 HIG?

未记录 first_name 用户属性,它是不是保留在 firebase 分析中?

UITableView 选定的单元格在滚动时不会保持选中状态