Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSString stringWithFormat崩溃_Ios_Objective C - Fatal编程技术网

Ios NSString stringWithFormat崩溃

Ios NSString stringWithFormat崩溃,ios,objective-c,Ios,Objective C,我有一个行代码,它创建了一个NSString,如下所示 NSString *paramString = [NSString stringWithFormat:@"?user_id=%@&x=%@&y=%@",_selectedID, _selectedX,[MyModel shared].currentUser.userID]; 我确实收到了如下事故报告: crash in : Thread 0 crashed: libobjc.dylib objc_msgSend

我有一个行代码,它创建了一个NSString,如下所示

NSString *paramString = [NSString stringWithFormat:@"?user_id=%@&x=%@&y=%@",_selectedID, _selectedX,[MyModel shared].currentUser.userID];
我确实收到了如下事故报告:

crash in :
Thread 0 crashed:
libobjc.dylib      objc_msgSend + 16
CoreFoundation _NSDescriptionWithLocaleFunc + 68
CoreFoundation _CFStringAppendFormatCore + 6004
CoreFoundation _CFStringCreateWithFormatAndArgumentsAux + 116
Foundation [NSPlaceholderString initWithFormat:locale:arguments] + 160
currentUser中的用户ID是一个NSString。
\u selectdID
\u selectedX
都是从VC1-->VC2-->VC3传递的NSString。在VC2和VC3中,都声明为
@property(非原子,赋值)

然而,根据崩溃报告,这种崩溃只发生在约1%的用户身上,并且所有用户都在iOS 7.1.1上


我试图模拟它,但没有运气。是因为内存被释放了吗?是否有任何方法可以模拟这种情况?

尝试使用复制或强修饰符声明NSString属性,以确保它们在内存中。它们可以被解除分配,并且它们的指针引用另一个var

问题是它之后被解除引用。请使用关键字
strong
,这样它就不会被解除引用

这可能是因为在创建字符串时,
\u selectedID
\u selectedX
已被解除分配。为什么要将它们声明为
assign
?您应该将它们声明为
strong
,这样当您仍在使用它们时,它们就不会被解除分配。