Ios 中断线程1:EXC\u坏访问
下面是一个代码:Ios 中断线程1:EXC\u坏访问,ios,objective-c,Ios,Objective C,下面是一个代码: for (int i = 0; i < _sevenForDisplay.length; i++) { _sevensForReplace = [_sevensForReplace stringByReplacingCharactersInRange:NSMakeRange([[_sevenForDisplay substringWithRange:NSMakeRange(i,1)] intValue]-1,1) withString:@"1"]; N
for (int i = 0; i < _sevenForDisplay.length; i++) {
_sevensForReplace = [_sevensForReplace stringByReplacingCharactersInRange:NSMakeRange([[_sevenForDisplay substringWithRange:NSMakeRange(i,1)] intValue]-1,1) withString:@"1"];
NSOperation *operation = [[NSInvocationOperation alloc]
initWithTarget:self
selector:@selector(blinkPicSeven:)
object:@(_forBlink)];
[queue addOperation:operation];
}
[userDefaults setObject:_sevensForReplace forKey:@"sevens"];
for(int i=0;i<\u七倍显示长度;i++){
_sevensForReplace=[[u sevensForReplace stringByReplacingCharactersInRange:NSMakeRange([[u sevensfordisplay substringWithRange:NSMakeRange(i,1)]intValue]-1,1),带字符串:@“1”];
NSOperation*操作=[[NSInvocationOperation alloc]
initWithTarget:self
选择器:@selector(blinkPicSeven:)
对象:@(_forBlink)];
[队列添加操作:操作];
}
[用户默认设置对象:_sevensforreplaceforkey:@“sevens”];
当代码在程序工作过程中执行时,最后一行出现错误,消息为-Thread 1:EXC_BAD_ACCESS(代码=1,地址=0x7a0090018)
我一步一步地开始调试(我在一个周期的开始和F6的进一步调试),一切都正常通过
在旧的OSX和Xcode版本中,一切正常,但在新版本中不正常。(该项目在一年中处于领先地位)在为其打造价值之前,确保您的
[[NSString alloc]init]
您的\u sevensForReplace
。现在看来,尤其是在XCode 6上。SDK被选为8.2时,那些NSString
未分配(init)的应用程序似乎崩溃了,尽管在8.2之前这项措施并不是真正必要的,如果您不想分配,init您可以这样使用它:
[self setSevensForReplace:[[self sevensForReplace] stringByReplacingCharactersInRange:NSMakeRange([[[self sevensForReplace] substringWithRange:NSMakeRange(i,1)] intValue]-1,1) withString:@"1"]];