iOS怎么定义私有属性

iOS的接口定义属性根本就没有权限的定义
那我要定义一个私有的属性怎办?

阅读 12.3k
3 个回答

可以将@property定义写在.m文件中的类扩展(class extension)中,

例如,"MyClass.h"如下

@interface MyClass : NSObject
@end

在"MyClass.m"里可以这么写:

#import "MyClass.h"
@interface MyClass ()
@property (nonatomic, assign) BOOL foo;
@end

@implementation MyClass
@synthesize foo = _foo; //XCode 4.4之后,这行可以省略
@end

详情可以参见官方文档
http://developer.apple.com/library/io...

没有特别好的办法,把私有的属性定义在单独的头文件里,把这个头文件不要公开给别人,也就是头文件属性设置为project,不要设置为public。那么当你的程序库发布的时候这个头文件就不会被导出

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    @public
    NSString *name;
    
    @protected
    NSString *gender;
    
    @private
    NSString *emotion;
}
@end
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏