说明: xcode4.4开始会自动@synthesize ,为@ property声明一个前缀下划线
的内部成员变量。因 此,不需要为属性重复做出内部成员变量声明。同时,禁
止 对属性做出错误的内部成员变量声明 。 示例-1:
良好的风格:@interface MyClass : NSObject {
}@property(copy, nonatomic) NSString *name; @end错误的声明:@interface
MyClass : NSObject {
NSString *name;
}@property(copy, nonatomic) NSString *name; @end------------范例-2:@interface t1 : NSObject
{NSString *a;
}@property (nonatomic,retain) NSString *a; -(BOOL)isStringEmpty;
@end
warning:Autosynthesized property 'a' will use synthesized instance variable '_a',
not existing instance variable 'a'
#import "t1.h"
@implementation t1 -(id)init{
if ( self = [super init] ) {
a = @"a"; }
return self; }
-(BOOL)isStringEmpty {
NSLog(@"_a=%@ a=%@ self.a=%@",_a,a,self.a);
return [a isEqualToString:@""]; }
@end
===========2014-04-09 15:23:25.837 iOS规范sample[5451:70b] _a=(null) a=a
self.a=(null)
网友评论