问题描述
我是一名 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 (将#修改为@)