Objective-C - 编写简单方法的最佳实践?

ary*_*axt 3 function objective-c

在以下功能中哪一个是最佳实践?

  1. 要发送自动释放的对象,并让调用者保留它?

  2. 或者发送一个已分配的对象,并让调用者释放它?


- (NSString*) convertDataToString :(NSData*)myData
{
     //just an example, method might not exist
     NSString *str = [[NSString alloc] initWithData:myData];
     return str;
     return [str autoRelease];
}

Rob*_*ier 7

跟进@ Chuck的评论,-convertDataToString 不得返回调用者必须释放的对象.这会违反三个魔法词.如果您的名称中没有"copy","alloc"或"new",则不能指望调用者释放该对象.如果您的名字中有"copy"或以"new"或"alloc"开头,则调用者必须释放该对象.

Objective-C在很大程度上依赖于一致的命名,名称意味着事物.如果您了解命名,那么您将不会遇到任何问题.