Object-c初步学习 三

1.@class关键字的使用

#import

//使用@class声明类(在.h中只需要类的声明,不需要知道变量和方法,不需要import .h文件)

@class Person;

NS_ASSUME_NONNULL_BEGIN

@interface ClassStudy: NSObject{

    Person *_p;

}

@end

NS_ASSUME_NONNULL_END

2.@property关键字参数

//默认不写参数 默认assign

@property int age;

//默认参数代表set和get方法

@property(assign) int a;

//代表线程安全

@property(atomic) int b;

//代表不需要关注线程安全

@property(nonatomic) int c;

//代表自动实现set方法的时候,release旧的值,retain新的值

@property(retain) NSString *d;

//代表生成set和get方法

@property(readwrite) int e;

//代表生成get方法

@property(readonly) int f;

//可以多个参数一起写

@property(nonatomic,readwrite) int g;

3.autorelease的使用

 @autoreleasepool {     

        Person *per2 = [[Person alloc] init];

        //调用autorelease表示,当前的对象加入autoreleasepool,当autoreleasepool销毁的时候,会调用回收池中每个对象的release方法

        //如果在for循环中创建的对象,不适合在回收池中释放,回收池只有销毁的时候才会释放对象,会导致对象延迟释放占用内存

        [per2 autorelease];

    }

你可能感兴趣的:(学习,objective-c)