首页 > 代码库 > iOS:不同属性声明方式的解析

iOS:不同属性声明方式的解析

代码:

/*属性声明方式说明: ----------------------- 1@interface ...{    id name}@end 这样声明的属性其实可以认为是private属性,因为它只能在方法里通过name引用,外部无法通过“object.name”的方式进行引用 (内部也不能通过self引用)----------------------  2@interface ...@property id name@end这样声明的属性可以认为是public属性,内部通过“self.name”引用;外部通过“object.name”引用 ----------------------- 3@implementation ...@synthesize name@end 允许以property声明的属性,在内部方法里除了以self引用外,还可以用属性名直接引用 ----------------------- 4self.name其实是是两个方法(setter,getter):id value = http://www.mamicode.com/[self name]>*/#import <Foundation/Foundation.h>@interface Student : NSObject{    NSString *name;}@property NSString *address;-(void) toString;@end@implementation Student@synthesize address;-(Student *)init{    name = @"lishujun";    self.address = @"beijing";    return self;}-(void) toString{    NSLog(@"%@ %@", name, [self address]);}@endint main(int argc, const char * argv[]){    @autoreleasepool {                // insert code here...        Student *student = [[Student alloc]init];        [student toString];        [student setAddress:@"tongzhou"];        [student toString];        NSLog(@"%@", student.address);                // 语法错误,没有setName这个方法        //[student setName:@"shujunli"];        //[student toString];            }    return 0;}

 

iOS:不同属性声明方式的解析