Я не уверен насчет использования вами @synchronize
здесь. Свойства обычно синтезируются в файле .m, используя @synthesize propertyName;
. @synchronize
используется для обеспечения резьбы в многопоточных приложениях.
Еще одна вещь, которую я вижу здесь, это то, что myTestString
может быть неопределенным в вашем -somethingElse
методе, потому что вы присваиваете свойству значение только тогда, когда buttonIndex == 0
. Возможно, вы захотите вставить значение по умолчанию для myTestString
, либо в методе -init
, либо в методе alertView:clickedButtonAtIndex:
.
Подводя итог, я бы ожидал, что ваш класс будет выглядеть примерно так:
MyClass.h
@interface MyClass {
NSString *myTestString;
}
@property (nonatomic, retain) NSString *myTestString;
@end
MyClass.m
@implementation MyClass
@synthesize myTestString;
-(id)init {
if ((self = [super init]) == nil) { return nil; }
myTestString = @"";
return self;
}
-(void)dealloc {
[myTestString release];
[super dealloc];
}
-(void)alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0) {
self.myTestString = @"test";
}
}
-(void)somethingElse {
NSLog(@"%@", myTestString);
}
@end