作者热门文章
- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
有人告诉我,我可以将属性设为私有(private),这样只有该类的实例才能引用它们(通过 self.)
但是,如果我在类接口(interface)中使用@private,然后正常声明该属性,它仍然可以从类外部访问...那么如何将属性设为私有(private)呢?请提供语法示例。
最佳答案
您需要在类扩展中包含这些属性。这允许您在接口(interface)声明中的实现文件中定义属性(以及最近的 iVars)。它类似于定义类别,但在括号中没有名称。
因此,如果这是您的 MyClass.m 文件:
// Class Extension Definition in the implementation file
@interface MyClass()
@property (nonatomic, retain) NSString *myString;
@end
@implementation MyClass
- (id)init
{
self = [super init];
if( self )
{
// This property can only be accessed within the class
self.myString = @"Hello!";
}
}
@end
关于iphone - 如何将属性设为私有(private)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6998177/
我是一名优秀的程序员,十分优秀!