伙计们:请帮忙.我有一个实用程序类来返回带编码的NSString.像这样:
/*Get a NSString with chinese encoding*/
+(NSString*) getGBKString:(void *)buffer
{
NSString* string = [[[NSString alloc]
initWithBytes:buffer
length:sizeof(buffer)
encoding:kCFStringEncodingGB_18030_2000]
autorelease];
return string;
}
Run Code Online (Sandbox Code Playgroud)
这autorelease是正确的事情吗?
如果是这样,方法调用者应该调用retain incase NSString对象被释放?
这
autorelease是正确的事情吗?
是.由于该方法不包含+alloc/ new/ copy,为了遵循Cocoa内存管理规则,您应该返回一个没有所有权的对象.
或者,您可以将方法重命名为+newGBKString:和删除-autorelease,然后知道约定的人将知道调用者将获得所有权.
如果是这样,方法调用者应该调用retain incase NSString对象被释放?
调用者应该-retain保留NSString.
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |