OC类得成员变量,属性变量,局部变量

例子:
头文件:

@interface ViewController : UIViewController
{
    //成员变量
    NSArray *array1;
}
//属性变量
@property (nonatomic,strong) NSArray *array2;
@end


源文件:
- (void)viewDidLoad
{
    [super viewDidLoad];
    array1 = [[NSArray alloc] initWithObjects:@"abcde", nil];
    array2 = [[NSArray alloc] initWithObjects:@"123abc", nil];
    {
//        局部变量
        NSArray *array1 = [[NSArray alloc] initWithObjects:@"12345", nil];
    }
    NSLog(@"\narray1 : %@\n array2 : %@",array1,array2);
}

我的理解是
局部变量是根据其生存周期定义的,在源文件中的array1,其生命周期是在以“{ }”为界限的代码块中,虽然它的名称与成员变量相同,但不是同一个变量。成员变量是用于一个区域内的临时变量。
成员变量,本例中的是实例成员变量,是作用于整个类对象内的。从生命周期来看,它比局部变量要长一些,但它默认是私有的,其他对象是无法访问到的。因此,一般自定义方法,作为一个接口让其他对象访问这个变量。因此,成员变量用于类内部,无需与外界接触的变量。
根据成员变量的私有性,为了方便访问,所以就有了属性变量。属性变量的好处就是允许让其他对象访问到该变量。当然,你可以设置只读或者可写等,设置方法也可自定义。所以,属性变量是用于与其他对象交互的变量。

成员变量 成员变量定义在类内部。

局部变量 局部变量定义在方法里。

属性变量


strong 指明此属性跟目标对象有着紧密的(拥有)关系。 weak 指明与目标对象是松散的(非拥有)关系。 假如目标对象被释放了,属性值将自动被设为 nil.  OS X v10.6 和 iOS 4不支持弱属性; 取而代之的是 assign.) copy 指明对象的副本应当用于赋值操作。 之前的值发送给一个 release 消息. 副本通过调用 copy 方法被创建. 除了对象类型(实现了 NSCopying  协议),对其它类型这个额外属性是无效的。 assign 指明 setter 使用简单赋值。这个额外属性是默认选项。 在标量类型中你会用到这个额外属性,例如 NSInteger 和 CGRect. retain 指明对象赋值时执行 retain 。 之前的值将发给一个 release 消息。 在 OS X v10.6 以及更新的版本中,你可以使用 __attribute__ 关键字来指定一个 Core Foundation 属性应当被当做一个用于内存管理的 Objective-C 对象对待
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值