@property属性修饰符

1.@property属性修饰符

//@property属性修饰符:@property ()

//多个修饰符之间用逗号隔开

//1.readwrite:缺省修饰符。可读可写,既有setter方法,也有getter方法

//2.readonly:只读。只有getter方法,没有setter方法

//3.atomic:缺省修饰符。原子的,考虑线程安全

//4.nonatomic:非原子操作。iOS开发中,官方类的属性一般是nonatomic类型的,所以我们一般也写成nonatomic.

//5.assign:基础数据类型(int/float/char/double/long)的缺省修饰符。直接赋值。

//6.对象:1> 字符串:copy

//       2> 其他对象:retain

//7.修改setter或者getter方法的名字(给settergetter方法起别名)

//settergetter方法名可以不一致

 

//姓名,年龄

@property(nonatomic,copyNSString *name;   //姓名

@property(nonatomic,assign,setter = setMouseAge:,getter = mouse) int age;          //年龄

 

 

 

2.访问控制

//访问控制:默认的是受保护类型 @protected

//访问控制针对的是成员变量。成员方法没有访问控制。

//1.@protected:默认,受保护类型。在类内减方法中可以直接使用,在类外不能直接使用,但是可以通过方法间接使用。子类可以直接使用。

//2.@private:私有的。在类内可以直接使用,在类外不能直接使用,但是可以通过方法间接使用。子类不可以直接使用,但可以通过父类的方法间接使用。

//3.@public:公有的。类内和类外都可以直接使用。

 

 

 

3.为什么需要在.m中加上 @synthesize age = _age;

@implementation Work

//xcode 4.3 开始 可以 省去  @synthesize xcode 会自动加上

 

//@synthesize height = _height;

 

//协议中出现了 @property  那么遵守协议的类 必须要手动添加上@synthesize age = _age; 这时xcode 不会自动加上的

 

//必须加上

@synthesize age = _age;

 

 

- (void)func { 

}

@end

 

4.前向声明

//前向声明:告诉Teacher这个类,接下来要使用的Children是一个类。

//在一个类的.h中,如果要使用另外一个类,那么使用前向声明的方式,为了避免彼此包含。

//前向声明后,如果要在当前类的.m中使用另外一个类(Children),仍然要导入头文件

//前向声明时,注意类名不要拼错(拼错就相当于声明一个新类)

@class Children;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值