伙计们:请帮忙.我有一个实用程序类来返回带编码的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;
}
这autorelease是正确的事情吗?
如果是这样,方法调用者应该调用retain incase NSString对象被释放?
这
autorelease是正确的事情吗?
是.由于该方法不包含+alloc/ new/ copy,为了遵循Cocoa内存管理规则,您应该返回一个没有所有权的对象.
或者,您可以将方法重命名为+newGBKString:和删除-autorelease,然后知道约定的人将知道调用者将获得所有权.
如果是这样,方法调用者应该调用retain incase NSString对象被释放?
调用者应该-retain保留NSString.
| 归档时间: | 
 | 
| 查看次数: | 195 次 | 
| 最近记录: |