成员变量,本例中的是实例成员变量,是作用于整个类对象内的。从生命周期来看,它比局部变量要长一些,但它默认是私有的,其他对象是无法访问到的。
比如你一个变量放在@interface 中,你申请一个实体时,变量存活周期跟你实体一样。
因为成员变量的作用域是整个类对象内,所以在ARC环境下OC里面的成员变量应该是 strong属性的。
   例子: 
  
头文件: 
  
@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,其生命周期是在以“{ }”为界限的代码块中,虽然它的名称与成员变量相同,但不是同一个变量。成员变量是用于一个区域内的临时变量。 
  
 成员变量,本例中的是实例成员变量,是作用于整个类对象内的。从生命周期来看,它比局部变量要长一些,但它默认是私有的,其他对象是无法访问到的。因此,一般自定义方法,作为一个接口让其他对象访问这个变量。因此,成员变量用于类内部,无需与外界接触的变量。 
  
 根据成员变量的私有性,为了方便访问,所以就有了属性变量。属性变量的好处就是允许让其他对象访问到该变量。当然,你可以设置只读或者可写等,设置方法也可自定义。所以,属性变量是用于与其他对象交互的变量。 
  
 目前我是这么理解的,希望对你有帮助。 
  
成员变量和属性变量是完全一样的,别被obj-c 2.0的灵活写法给误导了。
但是属性变量可以作为方法名字,也就是可以有其他名字。
http://www.cocoachina.com/bbs/read.php?tid-245245.html
看到一篇文章:
ios中的成员变量定义在@interface 和@implementation 中的区别是什么?
 
 
@interface 中是成员变量
 
@implementation 是全局变量
 
作用域和存活区间的问题
 
比如你一个变量放在@interface 中,你申请一个实体时,变量存活周期跟你实体一样
 
在@implementation 中,因为是全局,所以一直存在
 
非常感谢! 
还想了解下,具体的作用域的区别是什么?  
作用域,就是这个变量在存活区域,
域是类里面
 
全局变量,是整个程序
 
临时变量一般是函数内
 
@implementation testClass{
UIView *_test;
}
这样的变量应该不是全局的吧? @implementation testClass{ UIView *_test; } 
这个情况比较少个,不推荐,这个情况是成员变量
 
但是默认是@private
 
其实都是成员变量,放在 
@implemetation里的是私有的而已。 
  
都是成员变量,只是放在@implemetation中的变量无法被子类继承










