Серьезная проблема здесь ... Я получаю ECX_BAD_ACCESS, если я пытаюсь NSLog переменную экземпляра моего пользовательского объекта.Следующая функция вызывается в моем ViewController, payload
содержит строковые данные, которые извлекаются из URL.
- (void) initVcardWithData:(NSString *)payload {
NSLog(@"1. initVcardWithData");
aVCard = [[vcardItem alloc] initWithPayload:payload];
VCardViewController *aVCardViewController = [[VCardViewController alloc] initWithVCard:aVCard];
[self presentModalViewController:aVCardViewController animated:YES];
[aVCard release];
}
Пока все хорошо.Функция initWithWithVCard выглядит следующим образом: theVCard
и theVCardN
определены в @implementation и также установлены как @property (nonatomic, retain) в (.h).:
-(id)initWithVCard:(vcardItem *)aVCard {
if(self = [super init]) {
theVCard = [aVCard retain];
theVCardN = [theVCard.PersonName retain];
}
NSLog(@"---- vCardViewController :: initWithVcard :: FirstName: %@", theVCard.PersonName.FirstName);
return self;
}
Если я получаю доступtheVCardN
объект в моем ViewController aVCardViewController
в ViewDidLoad
все работает как шарм.Я установил некоторые метки с данными из этого объекта.
Если я тогда попытаюсь получить доступ к переменным экземпляра из theVCardN
внутри функции, которая вызывается из IBAction, подключенного к кнопке в View, я получаю ошибку EXC_BAD_ACCESS на консоли отладчика.Функция, которая пытается извлечь данные из переменных экземпляра, выглядит следующим образом:
-(IBAction)addressbookButtonTapped {
NSLog(@"RETAIN COUNT FOR theVCard: %i", [theVCard retainCount]);
NSLog(@"RETAIN COUNT FOR theVCardN: %i", [theVCardN retainCount]);
NSLog(@"Save to Adressbook: %@", theVCardN.FirstName);
//[self dismissModalViewControllerAnimated:YES];
}
RetainCounter для theVCardN
прямо перед вызовом NSLog выводит "1".Затем строка NSLog возвращает EXC_BAD_ACCESS в консоли отладчика.
Есть идеи?