【发布时间】:2011-05-06 14:03:06
【问题描述】:
我在这里和其他论坛上遇到过很多关于 Objective-C 中 @property 的问题。但是时不时会弹出一个问题..
我们需要 i-var 来支持属性吗?
请通过以下代码-
RootViewController.h 文件:-
#import <UIKit/UIKit.h>
@interface RootViewController : UIViewController {
}
@property (nonatomic, retain) NSMutableArray *arrTest;
@end
RootViewController.m如下——
#import "RootViewController.h"
@implementation RootViewController
@synthesize arrTest;
#pragma mark -
#pragma mark View lifecycle
- (void)viewDidLoad {
[super viewDidLoad];
self.arrTest = [[[NSMutableArray alloc] init] autorelease];
[arrTest addObject:@"Object1"];
[arrTest addObject:@"Object2"];
[arrTest addObject:@"Object3"];
[arrTest addObject:@"Object4"];
[arrTest addObject:@"Object5"];
NSLog(@"arrTest :- \n%@",arrTest);
NSLog(@"self.arrTest :- \n%@",self.arrTest);
[self.arrTest addObject:@"Object6"];
[self.arrTest addObject:@"Object7"];
[self.arrTest addObject:@"Object8"];
[self.arrTest addObject:@"Object9"];
[self.arrTest addObject:@"Object10"];
NSLog(@"arrTest :- \n%@",arrTest);
NSLog(@"self.arrTest :- \n%@",self.arrTest);
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
如您所见,我没有创建实例变量来支持该属性。
据此,我假设一个变量是在内部创建的,因为我可以通过说来访问它
[arrTest addObject:@"Blah Blah"];
如果是这样,那为什么要声明属性,还需要创建实例变量呢?
【问题讨论】:
标签: iphone objective-c cocoa-touch properties