【问题标题】:Is it possible to create private property in Objective-C?是否可以在 Objective-C 中创建私有属性?
【发布时间】:2011-04-09 14:31:08
【问题描述】:

是否可以在 Objective-C 中创建私有属性? 我确实知道可以以另一种方式实现一种私有财产功能,但我对特定问题感兴趣。 谢谢。

【问题讨论】:

  • 我也想做同样的事情。我想隐藏类中包含的特定变量的所有保留/释放代码,但该变量并不意味着公开。
  • JFYI,现在有了 iOS SDK 5 ARC,您不再需要关心保留和释放 :)
  • 这就是我听到的,我很高兴看到。抱歉,跑题了。

标签: objective-c properties private


【解决方案1】:

是的,你可以,但是代码看起来有点奇怪。如果你打电话它只会给你一些警告,你必须自己检查警告

在你的实现文件.m中

@interface YourObject ()

@property (nonatomic, retain) NSMutableArray *infoArray;

@end

【讨论】:

  • 即使这个解决方案也不会创建真正的私有财产,因为它可以被外部代码访问。即使通过 setValue:forKey: 调用也没有警告
  • 你这是什么意思?如果我调用 YourObject *obj = //alloc init;然后 obj.infoArray,它会给我警告。你在做 KVO?
  • @vodkhang:为什么你说代码看起来很奇怪?对我来说这看起来很正常。
  • @Gobra: -setValue:forKey: 不会为任何私有、公共甚至不存在的属性生成编译时警告。
  • @NR4TR:属性只是一对方法。 @vodkhang:是的,这是一个标准的东西,称为类扩展。 developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/…
猜你喜欢
  • 2011-10-01
  • 1970-01-01
  • 2011-08-04
  • 2011-01-15
  • 1970-01-01
  • 2010-09-16
  • 2010-10-13
  • 1970-01-01
  • 2013-11-27
相关资源
最近更新 更多