以编程方式创建一个对象,然后稍后释放它

时间:2011-09-01 08:17:56

标签: iphone objective-c release retain

我以编程方式使用

创建一个ActivityIndi​​catorView
UIActivityIndicatorView* cactivity = [[[UIActivityIndicatorView alloc] 
 initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] retain];

然后当我想停止动画并在下一个发布时 - (void)connectionDidFinishLoading,我使用未声明的标识符?但我以为我保留了它并且不得不自己释放它。

4 个答案:

答案 0 :(得分:2)

首先,您无法在UIActivityIndicatorView alloc之后保留init,它的保留计数为1。

只需在.h文件中声明UIActivityIndicatorView,然后您可以将其作为实例变量引用。 (thnx Rob)。

答案 1 :(得分:1)

未声明的标识符表示该变量未在当前范围中定义。要在多个方法中使用相同的变量,请将其设置为类ivar或属性。

答案 2 :(得分:1)

本地声明:您已在本地方法中声明 UIActivityIndi​​cator ,因此无法访问其他方法。您必须在头文件中声明。另外,给它保留属性。然后,您可以随时随地访问它。

不需要保留消息:此外,当您初始化它时,其保留计数增加1,因此无需将保留消息传递给它。无论如何你都可以访问它。

答案 3 :(得分:1)

尝试使用“autorelease”获取结果或避免警告。但是,并不是每种情况都要好。