Я могу передавать базовые данные между классами, но когда я пытаюсь передать NSString*
из моего UIApplicationDelegate
, я получаю EXC_BAD_ACCESS
/ NSZombie
.
Есть ли что-то особенное, что я должен сделать, чтобы вернуть NSObject
? Это связано с многопоточностью? (Я думал, что настройка atomic
для свойства позаботится об этом?)
AppDelegate.h:
@interface AppDelegate : NSObject <UIApplicationDelegate> {
NSString * currentNoteName;
}
@property (atomic, assign) NSString *currentNoteName;
@end
AppDelegate.m:
- (void)timerCallback:(NSTimer *)timer {
currentNoteName = [NSString stringWithCString:(tone->freq).c_str() encoding:NSUTF8StringEncoding];
// This works:
NSLog(@"Current Note Name in timerCallback: %@", currentNoteName);
OtherObject.m:
// Returns a Zombie object & EXC_BAD_ACCESS:
NSString *currentNoteName = [appDelegate currentNoteName];