В моей программе я присваиваю значение свойству в методе init. Позже я использую это свойство в ответ на событие.
Дано свойство с именем Object; почему работает синтезированный сеттер [self setObject:obj]
, но Object = obj
выдает исключение Invalid Selector? Это потому, что мутатор добавляет один к счетчику ссылок на obj?
Редактировать: Вот еще код, чтобы дать контекст. Когда я говорю «работа» выше, я имею в виду запустить без ошибок.
Вот инициализация объекта (A View Controller), который имеет свойство в нем:
Примечание: Все свойства объявлены как (nonatomic, retain)
.
@synthesize _Kiosk;
....
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andKiosk: (Kiosk*) kiosk
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
[self set_Kiosk:kiosk]; //This work witout error. _kiosk = kiosk Fails at point below.
}
return self;
}
....
- (IBAction) ActionPressed:(id)sender
{
[_CompanyName setText: [_Kiosk _CompanyName]]; //Failure happens here
}
А вот вызов метода, который инициализирует этот View Controller:
@synthesize _Kiosk;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[[UIApplication sharedApplication] setStatusBarHidden:true withAnimation:UIStatusBarAnimationFade];
_Kiosk = [[Kiosk alloc] init];
self.window.rootViewController = [_KioskViewController initWithNibName:@"iPadKioskView" bundle:nil andKiosk: _Kiosk];
[_Kiosk release];
[self.window makeKeyAndVisible];
return YES;
}