lms*_*lms 0 iphone objective-c ios4
我正在尝试交换两个字符串,但我不确定我所做的事情是否合法(来自java我是整个保留计数内存管理的新手).
这是我的代码:
NSString *temp = [[NSString alloc] init];
temp = originalLanguageCode;
originalLanguageCode = translatedLanguageCode;
translatedLanguageCode = temp;
[temp release];
Run Code Online (Sandbox Code Playgroud)
这是允许的吗?我得到了一些奇怪的错误,我不确定是什么导致了它们,希望这可能是它.非常感谢任何帮助,谢谢!
在为temp
您分配新分配的字符串后,会立即originalLanguageCode
为其分配,因此分配的字符串完全丢失.那是内存泄漏.然后你正在释放temp
,这是最初的originalLanguageCode
.这是一个过度释放.
试试这个:
NSString *temp = originalLanguageCode;
originalLanguageCode = translatedLanguageCode;
translatedLanguageCode = temp;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
574 次 |
最近记录: |