我的 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 属性保持未设置是不是可以?的主要内容,如果未能解决你的问题,请参考以下文章
通过 reloadData 更新 UITableView 时保持选择
UITableViewCell 保持突出显示是不是违反 HIG?