У меня есть строки кода, который создает NSString, как показано ниже,аварии на NSString stringWithFormat
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
userID
в CurrentUser является NSString. _selectdID
и _selectedX
- это оба NSStrings, переданные из VC1 -> VC2 ---> VC3. В VC2 и VC3 оба объявлены как @property(nonatomic,assign)
.
Однако этот сбой происходит только около 1% пользователей, и все они находятся на iOS 7.1.1 в соответствии с отчет о сбое.
Я попытался имитировать его без везения. Это из-за освобождения памяти? Есть ли что-нибудь, чтобы имитировать это?
Вероятно, потому что '_selectedID' или' _selectedX' уже были освобождены при создании вашей строки. Почему вы объявили их как «назначать»? Вы должны объявить их «сильными», чтобы они не освобождались, когда вы все еще используете их. – dan