#import <Foundation/ Foundation.h>
@interface ClassA : NSObject {
int myNumber; // 实例变量 }
- (void)print; // 打印,返回为空
-(void)setMyNumber:(int)number; // 设置器
}
@end
#import
@implementation ClassA - (void)print
{ NSLog(@"Class A number is :
%d", myNumber);
} // 打印myNumber的值
- (void)setMyNumber:(int)number
{
myNumber = number; } // 设置myNumber的值
- (int)number:(int)number
{
-!(int)number:(int)number // 访问器
return
在cocoa中get特殊意义,尽量不要在方法命名中出现
——————————————————————————
简化设置器和访问器
@property
用@property相当于set方法
在@synthesize里进行get方法实现
@property()和@snythesize()括号里有三种参数,默认情况下分别为:atomic,assign,readwrite
1:读写属性,有readonly和readwrite,readonly的话没有set方法
2:setter方法,assign(weak)为赋值,引用计数为一,只是相当于一个别名,在栈上和堆上地址和内容都相同。
retain保留,引用计数加一,在栈上开辟一块内存,但存放的内容是相同的,都是堆的地址,都指向相同一块堆内存。加入retain机制,防止指针传递之后被误release
copy复制,引用计数要加一,在栈上重新开辟一块内存,并且在堆上也开辟一块内存,它们的内容不相同,分别指向不同堆地址,引用计数加一。这是为了减少对上下文的依赖而引入的机制。
3:atomic和nonatomic