Хотя есть прямой доступ к переменным-членам, подобным этой (с помощью оператора ->), это не рекомендуется.
Правильный способ - предоставить средство доступа для получения / установки переменных-членов.
В Objective-C 2.0 (iPhone и OSX 10.5) вы можете легко сделать это, используя ключевое слово "property". В качестве части синтаксиса свойства вы также можете выразить, как вы хотите, чтобы «набор» объектов обрабатывался.
сохранено - предыдущий объект будет освобожден, а новый сохранен
копировать - объект будет скопирован
назначить - объект будет назначен.
Это основы, я предлагаю вам прочитать больше о свойствах.
Ниже показано, как вы будете использовать свойства в вашем примере. Обратите внимание, что поскольку мы имеем дело с NSString, который является производным классом NSObject, мы используем опцию «retain», чтобы обеспечить правильное обновление счетчиков ссылок.
// 1.h
@interface ViewController1 : UIViewController
{
// declare our variable
NSString* _string;
}
// declare 'string' as a property
@property (retain) NSString* string;
// 1.m
// implements the property for string
@synthesize string = _string;
// constructor for ViewController1
-(id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle {
if (self = [super initWithNibName: name bundle: bundle]) {
// Initialize the string here.
self.string = @"Hello World";
}
}
// 2.m
NSString* oldString = view.string;
view.string = @"New String";