• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iphone - 在 Objective-C 中发布 ivars

[复制链接]
菜鸟教程小白 发表于 2022-12-13 07:24:45 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

好的,看看这个:

Apple docs: Declared Properties

如果你向下滚动到 dealloc,它会显示:

“通常在 dealloc 方法中,您应该直接释放对象实例变量(而不是调用 set 访问器并将 nil 作为参数传递),如下例所示:”

- (void)dealloc {
    [property release];
    [super dealloc];
}

"但是如果你使用现代运行时合成实例变量,则不能直接访问实例变量,所以必须调用访问器方法:"

- (void)dealloc {
    [self setProperty:nil];
    [super dealloc];
}

现在,我必须拥有至少 15 到 20 本关于 iOS 开发的书籍。我不能说我曾经在这些书中看到过任何代码建议做除以下之外的任何事情:

[someproperty release];

是否有令人信服的理由编辑一堆运行良好的代码文件以采纳 Apple 的建议?以后的工作怎么样?或者,它们是否相当?



Best Answer-推荐答案


Apple 的文档似乎仅在您启用了默认合成时才适用。如果你把它关闭了,这似乎是默认情况,你需要@synthesize,它可以让你直接访问变量。

我个人认为:

@synthesize someProperty=_someProperty;

这样我就可以这样做了:

- (void)dealloc {
  [_someProperty release];
  [super dealloc];
}

Jeff LaMarche's blog了解更多。

关于iphone - 在 Objective-C 中发布 ivars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5827177/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap