目标C中的自动释放和便利方法

时间:2013-07-21 13:21:26

标签: objective-c convenience-methods

所以当对象被自动释放时我有点困惑。到目前为止,我了解如果我不是“所有者”,它就会这样做。但在哪些情况下,我不是主人?当我使用便捷方法创建对象?我不明白所有这些便利方法的来源,以及如何创建它们。

1 个答案:

答案 0 :(得分:1)

您通常使用alloc +初始化程序来创建不会自动释放的对象。相反,您使用静态方法来获取自动释放的实例。示例:

NSString* string1;
NSString* string2;
@autoreleasepool{
    string1= [NSString stringWithString: @"Hello"];
    string2= [[NSString alloc] initWithString: @"Hello"];
}
// string1 isn't alive, string2 is alive

你还必须注意单身人士。如果是单身人士,他们不会自动释放,但你不拥有它们。通常你从方法的名称中理解它是否返回单例(例如:sharedInstancemainThread之类的东西)。