@property 和 点语法

来源:互联网 发布:电子数据取证业务培训 编辑:程序博客网 时间:2024/05/18 01:21

  

  OC开发中,也对Bean对象进行了get,set的自动生成代码。 


#import <Foundation/Foundation.h>static NSString  *STUDENT_NAME = @"三年二班";@interface Student : NSObject{    NSString *name;    int age;    NSString  *sex;    //static NSString  *STUDENT_NAME = @"三年二班";  静态属性只能写在上面    }@property(nonatomic) NSString *name;@property(nonatomic) int  age;@property(nonatomic) NSString *sex;- (void) getStudentMsg;@end



#import "Student.h"static NSString  *STUDENT_ADDRESS = @"学校地址";@implementation Student@synthesize name;@synthesize age;@synthesize sex;- (void) getStudentMsg{    NSLog(@"student message  className: %@ name: %@  age: %d  sex: %@",STUDENT_NAME,self.name,self.age,self.sex);}@end


  Student *student = [[Student alloc] init];   // OC中的点语法就相当Java中的Publiec属性的调用。        student.name = @"五道杠";                [student setName:@"六道杠"]; // 框架默认在属性的前面提供了set和get的方法,                student.age = 15;        student.sex = @"男";                NSString *studentName = [student name]; // 默认直接用来get方法调用。                NSLog(@"studentName : %@",studentName);                NSLog(@"静态属性调用-%@",STUDENT_NAME);  // 静态属性直接调用,其中前面的类名都不需要写。                [student getStudentMsg];


点语法, 相当于java中的public的属性的用法,直接赋值。


其中@property()括号中,可以填写的属性:

readwrite: 默认   可读可写。

readonly: 只读,没有set方法

assign: 默认,引用计数不增加

retain:引用计数增加1

原子性: actomic 默认  。 (和java中的那些原子类一样,为了变量线程安全)

非原子性:nonatomic  



这些属性可以 多个一起使用。













0 0
原创粉丝点击