我想在重新加载App之后比较两个字符串。 (漫步和新闻宣布为全球性)
但是如果我在 -applicationWillEnterForeground:中调用字符串' strold ',我会收到以下错误消息:
0x011eca62< + 0022>推%edi
0x011eca63< + 0023> mov 0x8(%edx),%edi(BAD EXIT FOR THE LINE)
- (void)applicationWillEnterForeground:(UIApplication *)application{
opendate = [NSDate date];
NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"yyyy-MM-dd"];
strnew = [formatter stringFromDate:opendate];
NSLog(@"Active %@",strnew);
NSLog(@"Inctive %@",strold);
}
- (void)applicationWillResignActive:(UIApplication *)application{
closedate = [NSDate date];
NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"yyyy-MM-dd"];
strold = [formatter stringFromDate:closedate];
}
我只想检查一天是否实际发生了变化。 显着时间方法对我没用。
答案 0 :(得分:2)
您必须retain
strold
,因为它是autorelease
d。
strold = [[formatter stringFromDate:closedate] retain];
或
self.strold = [formatter stringFromDate:closedate];
如果strold
被定义为保留属性。