另一个iPhone内存泄漏问题
我在jsonParser上有内存泄漏 这是我的代码另一个iPhone内存泄漏问题,iphone,objective-c,memory-leaks,sbjson,Iphone,Objective C,Memory Leaks,Sbjson,我在jsonParser上有内存泄漏 这是我的代码 - (id) objectWithUrl:(NSURL *)url { SBJsonParser *jsonParser = [SBJsonParser new]; NSString *jsonString = [self stringWithUrl:url]; // Parse the JSON into an Object return [jsonParser objectWithString:jsonString error:nil];
- (id) objectWithUrl:(NSURL *)url {
SBJsonParser *jsonParser = [SBJsonParser new];
NSString *jsonString = [self stringWithUrl:url];
// Parse the JSON into an Object
return [jsonParser objectWithString:jsonString error:nil]; }
这是我收到的错误消息,在第192行分配并存储到“jsonParser”中的对象可能泄漏。
请提供帮助。+new相当于[[SBJsonParser alloc]init]调用,因此您有责任释放jsonParser对象。当您在return语句中使用它时,修复泄漏的最简单方法是在创建以下内容后立即自动释放它:
SBJsonParser *jsonParser = [[SBJsonParser new] autorelease];
+new相当于[[SBJsonParser alloc]init]调用,因此您负责释放jsonParser对象。当您在return语句中使用它时,修复泄漏的最简单方法是在创建以下内容后立即自动释放它:
SBJsonParser *jsonParser = [[SBJsonParser new] autorelease];
另外,您应该考虑将<代码> OLC/<代码>和<代码> init < /Case>消息,而不是<代码>新< /代码>,而这些函数是等价的,技术上<代码>新< /代码>不是ObjuleC的一部分,并不是社区广泛使用的。Tracki:技术上,<代码> OLC/<代码>和<>代码> init <代码>不是Objtovi-C的一部分。它们是基础框架的一部分。事实上,
new
早于它们,实际上源于Smalltalk。无论如何,你的观点是正确的。每个人都使用alloc
init
<代码>新的< /代码>在Objut-C上下文中看起来有点奇怪。你可能会看到<代码>新< /C> >在ARC上下文中使用得越来越频繁。此外,你应该考虑发送<代码> OLC/<代码>和<代码> init <代码>消息到类而不是<代码>新< /代码>,而这些函数在功能上是等价的。从技术上讲,new不是Objective-C的一部分,也不是社区广泛使用的@Tracki:技术上,<代码> OLC/<代码>和<>代码> init <代码>不是Objtovi-C的一部分。它们是基础框架的一部分。事实上,new
早于它们,实际上源于Smalltalk。无论如何,你的观点是正确的。每个人都使用alloc
init
new
在Objective-C的上下文中看起来有点奇怪。您可能会看到new
在ARC上下文中使用得越来越频繁。