iphone - 哪种方式是使用属性分配内存的正确方法?

标签 iphone objective-c cocoa-touch cocoa ipad

哪种方式是正确的?

NSString *c = [[NSString alloc] init];
self.character = c;
[c release];

self.character = [[NSString alloc] init];

为什么?谢谢。

最佳答案

这取决于您的属性(property)如何申报。如果您使用过

@property (nonatomic, retain) NSString *someString;

将创建 setter 来保留 someString,在这种情况下,正确的方法是第一个方法。如果您使用过:

@property (nonatomic, assign) NSString *someString;

您的第二种方法是正确的,因为它只会分配指针而不保留任何内容。

关于iphone - 哪种方式是使用属性分配内存的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7395253/

相关文章:

iOS 9 pushViewController 不工作,在 iOS 8 中一切都按预期工作,零代码更改?

ios - 如何将 "migrate"免费开发者 iOS 应用程序添加到付费帐户?

iphone - 主线程上的 NSOperation 和 NSNotificationCenter

ios - 如何通过界面生成器更改导航项标题?

ios - 在表格 View 单元格中添加向下箭头

iphone - 从 Nib 加载时,自定义单元永远不会排队?

iphone - 线程 1 : EXC_BAD_ACCESS (code=1, 地址=0xf00000c)

iphone - 单个 View 中的多个 TableView -iPhone

ios - 如何在获得用户标题之前阻止执行

cocoa-touch - NSUserDefaults objectForKey() 接收错误