这可能是一个愚蠢的问题,但是如果我的AppDelegate有一个如下定义的变量:
@property (nonatomic, strong) NSString * m_sDevToken;
我也有一个方法:
- (NSString *)getDeviceToken;
在我的.m文件中,请执行以下操作:
@synthesize m_sDevToken;
我像这样为m_sDevToken分配一个值:
m_sDevToken = [[[[deviceToken description]
stringByReplacingOccurrencesOfString:@"<"withString:@""]
stringByReplacingOccurrencesOfString:@">" withString:@""]
stringByReplacingOccurrencesOfString: @" " withString: @""];
我有这样返回的方法:
- (NSString *)getDeviceToken
{
return m_sDevToken;
}
我尝试在我的初始View Controller中从viewDidLoad访问它,如下所示:
BarMateAppDelegate * appDelegate = (BarMateAppDelegate *)[[UIApplication sharedApplication] delegate];
NSLog(@"%@", [appDelegate getDeviceToken]);
现在,如果我在分配它后立即记录它,则它的值正确,但是在viewDidLoad方法中它返回(空)。
我对Objective-C有点陌生,但是类似的任务似乎可以正常工作,所以我在做什么错呢?
谁能给我解释为什么它为空?
最佳答案
定义如下:
@property (strong) NSString * m_sDevToken;
否则它将被取消分配。
关于ios - 我的AppDelegate属性为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21941344/