標籤:style blog color os io ar div 代碼 sp
代碼:
/*屬性聲明方式說明: ----------------------- 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 = [self name][self setName = ...] ----------------------- 5總結:如果架構依賴的屬性是@property,就不能實現為私人,否則程式可以崩掉 */#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:不同屬性聲明方式的解析