使用stringWithUTF8String:方法创建一个NSString对象时在使用时报错Thread 1: EXC_BAD_ACCESS (code=1, address=0x11518338)。
通过调试发现这个NSString对象是一个僵尸对象,查看代码后发现该方法是通过cha r * 创建的,char *在使用完后就释放了。所以考虑是不是通过该方法创建的对象是不会拷贝数据的。所以网上找了另一个方法创建,最后发现使用initWithBytes: length: encoding:这个方法后就不会崩溃了。
//崩溃代码
// NSString *str = [NSString stringWithUTF8String:Sinfo.RemoteIP];
//修改代码
NSString *str = [[NSString alloc] initWithBytes:Sinfo.RemoteIP length:strlen(Sinfo.RemoteIP) encoding:NSUTF8StringEncoding]
网友评论