我有时会通过以下方法获取EXC_BAD_ACCESS KERN_PROTECTION_FAILURE:
+ (NSString *) UTCStringWithDate:(NSDate *)date {
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
NSLocale *enLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter setLocale:enLocale];
[dateFormatter setTimeZone:timeZone];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
NSString *dateString = [dateFormatter stringFromDate:date];
return dateString;
}会出什么问题呢?请帮帮我!
发布于 2016-01-19 00:19:25
从描述中看不出哪一行正在崩溃,所以这是我最好的猜测:
可能是传入的NSDate参数有时有问题。
如果日期有争用条件,那么它可能会被释放,并且在此方法开始之前或刚开始之后,它的RAM位置将填充一个新对象。
尝试在激活NSZombies的情况下运行您的代码,或者在使用它之前尝试检查它是否仍然是NSDate对象。
NSAssert( [date isKindOfClass:[NSDate class]], @"Error, expected 'NSDate', but argument class was '%@'", NSStringFromClass([date class]) );
NSString *dateString = [dateFormatter stringFromDate:date];https://stackoverflow.com/questions/34857437
复制相似问题