这会导致 NSString 泄漏吗?

问题描述

我是一名 C 程序员,但对 Objective-C 还是很陌生。我已经多次看到这样的 NSString 相关代码:

NSAppleScript* script = [[NSAppleScript alloc] initWithSource: @"<some script code>"];
...
[script release];

上面的代码显式地释放了 NSAppleScript 对象,但似乎没有在任何地方释放 NSString 对象。

我想知道 [script release] 是否会自动完成 NSString 对象的隐式释放工作,所以我将上面的代码更改为以下内容:

NSString* scriptText = @"<some script code>";
NSAppleScript* script = [[NSAppleScript alloc] initWithSource: scriptText];
...
[script release];
//If [script release] has implicitly released scriptText,//this would cause a repeated release.
[scriptText release];

但是上面的代码运行起来也很好。这是否意味着 [script release] 不会自动释放 NSObject 对象?也就是说,第一节的代码是不是泄露了NSString的释放?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)