NSString* strSubject = [[NSString alloc] initWithData: temp encoding:
NSISO2022JPStringEncoding];
我在上面的一行收到了一条内存消息“分配对象的潜在泄漏”。 是否有其他方法可以写同样的内容。
答案 0 :(得分:2)
除非您将其发布或将其放入自动释放池中,否则您将获得此类消息。
这可以通过以下方式完成:
NSString* str = [[NSString alloc] initWithData: blah blah blah ... ];
[str release];
立即行动。您也可以使用:
NSString* str = [[NSString alloc] initWithData: blah blah blah ... ];
[str autorelease];
将来在某个时候发布。
答案 1 :(得分:0)
您需要稍后或[strSubject release]
稍后或立即执行[strSubject autorelease]
。我会用这个:
NSString* strSubject = [[[NSString alloc] initWithData:temp encoding:NSISO2022JPStringEncoding] autorelease];
可悲的是,没有NSString工厂方法stringWithData:
,但这是等效的。
事实上,任何[NSString stringWithBlah:xx]
方法都或多或少等同于[[[NSString alloc] initWithBlah:xx] autorelease]