Ios OC崩溃:将NSMutableString作为NSString返回以供使用
在发布模式下构建并运行,然后崩溃Ios OC崩溃:将NSMutableString作为NSString返回以供使用,ios,objective-c,assembly,Ios,Objective C,Assembly,在发布模式下构建并运行,然后崩溃 - (NSString *)testMutableStringReturnStringCrash{ NSString *str = nil; if(str.length <= 0){ str = mutableStringAsNSString(); }else{ str = @"1"; } str = str.length > 0 ? str : @"2"; str
- (NSString *)testMutableStringReturnStringCrash{
NSString *str = nil;
if(str.length <= 0){
str = mutableStringAsNSString();
}else{
str = @"1";
}
str = str.length > 0 ? str : @"2";
str = str.length > 0 ? str : @"3";
NSString *content = [NSString stringWithFormat:@"%@", str];
return content;
}
NSString *mutableStringAsNSString(){
return [NSMutableString stringWithString:@"0"];
}
-(NSString*)testMutableStringReturnStringCrash{
NSString*str=nil;
如果(str.length 0?str:@“2”;
str=str.length>0?str:@“3”;
NSString*内容=[NSString stringWithFormat:@“%@”,str];
返回内容;
}
NSString*mutableStringAsNSString(){
返回[NSMutableString stringWithString:@“0”];
}
我发现这是一个关于代码汇编语言的问题
但我不明白为什么。
当设置str=str.length>0时?str:@“2”,str是uu NSCFString not muti,所以你重置str make crash你能解释一下这段代码的真正目的吗?你怎么知道这段代码是崩溃的根源?对我来说,根本没有崩溃项目文件中发生的崩溃。我只是提取了崩溃代码的一部分。你设置了构建配置版本了吗ide重新复制的崩溃日志?我不这么认为。崩溃是因为它被发布了两次。