这可能是一个愚蠢的问题,但是如果我的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/

10-09 16:33
查看更多