大佬教程收集整理的这篇文章主要介绍了iphone – 如何声明实例变量和方法在类实例之外不可见或可用?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果你有两个ivars,比如说“public_ivar”和“private_ivar”,你应该在哪里/你应该如何声明它们,以便公开是什么是公共的,什么是私有的不会以任何方式暴露给任何看头文件的人?
在“public_method”和“private_method”的情况下也是一样的问题.
我喜欢干净的头文件(在其他语言),只暴露方法和ivars我想让别人看到.你应该可以发布你的头文件,而不会遇到有人访问他们不应该的东西的危险.你如何在客观C中做到这一点.
例如,我们假设我需要使用一个ivar来跟踪所有需要访问这些信息的各种类方法之间的数据,计数器或类似的数据.如果这个ivar在传统的@interface标题下被宣布,那么它的存在是公开的,并且它可以被创建该类的一个实例的任何人使用.理想的情况是,这个ivar在类实现之外是不可见的.
@interface someClass : NSObject @end
并在执行文件中:
@interface someClass () @property (nonatomic,assign) int privateInt; @end @implementation someClass @synthesize privateInt; … @end
要么
@interface someClass () { int privateInt; } @end @implementation someClass … @end
请注意,在运行时,没有任何东西阻止访问私有/类扩展实例变量(或类扩展中声明的属性的访问器方法).我写了一篇相当详细的文章,作为Stack Overflow另一个问题的答案:Does a private @property create an @private instance variable?
编辑:类扩展中的实例变量在WWDC 2010会话144中提供.
编辑:“使用Clang / LLVM 2.0编译器,您还可以在类扩展中声明属性和实例变量.
以上是大佬教程为你收集整理的iphone – 如何声明实例变量和方法在类实例之外不可见或可用?全部内容,希望文章能够帮你解决iphone – 如何声明实例变量和方法在类实例之外不可见或可用?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。