Я прошел через много вопросов, заданных здесь и на других форумах, касающихся @ property в Objective-C.Но время от времени возникает вопрос ..
Нужны ли нам i-vars для поддержки свойств?
Пожалуйста, пройдите по следующимкод -
файл 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"];
Если это так, то почемунам нужно создать переменную экземпляра, если мы собираемся объявить свойства?