下面这句话会导致标题中的错误,麻烦大侠解释下,现在还不明白神马原因,只知道删掉autorelease就正常了。
NSString *restName = [[[[NSString alloc]initWithString:[ItemStr substringWithRange:subPRange]]stringByReplacingOccurrencesOfString:@"&" withString:@"&"]autorelease];
另外找到的一个错误和解决方案如下。奉上:
Should’ve been invalidated iOS5开发错误0+ 969 views
iOS5推出后,赶紧升级手里的ios产品,发现有个错误始终无法解决,就是”Should’ve benn invalidated”,闪退. 排查了半天,最后发现是文件通过网络上传后,提前释放了连接导致的.把release行注释掉,程序正常了.leaks工具测试也通过.

解决方案 »

  1.   

    你用stringByReplacingOccurrencesOfString这个创建的nsstring本来就是autorelease的,你还加个不错才怪。水平不够就分开写,写成一坨自己都搞不清楚,更不用说给别人看了。
      

  2.   

    这里去掉autorelease以后,在后面加一句[restName release]同样报错,如何解?
    前面有alloc,在哪里加release?看来这句确实太长了,还要分开,
    [[NSString alloc]initWithString:[ItemStr substringWithRange:subPRange]]
    这一句要加release,对吧。