Iphone 以编程方式创建对象,然后稍后将其释放

Iphone 以编程方式创建对象,然后稍后将其释放,iphone,objective-c,release,retain,Iphone,Objective C,Release,Retain,我以编程方式使用创建ActivityIndicatorView UIActivityIndicatorView* cactivity = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] retain]; 然后,当我想在下一个 -(void)connectiondFinishLoading,im使用未声明的标识符?但是我认为我保留了它,必须自

我以编程方式使用创建ActivityIndicatorView

UIActivityIndicatorView* cactivity = [[[UIActivityIndicatorView alloc] 
 initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] retain];
然后,当我想在下一个

-(void)connectiondFinishLoading
,im使用未声明的标识符?但是我认为我保留了它,必须自己释放它。

首先,没有必要保留
UIActivityIndicatorView
在您
alloc
init
之后,它的保留计数已经为1


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

首先,无需保留
UIActivityIndicatorView
在您
alloc
init
之后,它已经有一个保留计数1


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

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

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

本地声明:您已在本地方法中声明了UIActivityIndicator,因此其他方法无法访问它。您必须在头文件中声明。同时,赋予它保留的属性。然后,您可以随时随地访问它


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

本地声明:您已在本地方法中声明了UIActivityIndicator,因此其他方法无法访问它。您必须在头文件中声明。同时,赋予它保留的属性。然后,您可以随时随地访问它


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

尝试使用“自动释放”获取结果或避免警告。但这并不是每种情况下都是好的。

尝试获得结果或使用“自动释放”避免警告。但这并不是在所有情况下都是好的。

实例变量,而不是类变量。这是我最初的计划。。也是这个问题的根源。我只是想在IB中创建它并将其连接到一些代码,但是我无法按ctrl键将其拖动到.h文件,也无法将.h中的uiactivityindicator连接到.xib对象,因此我采用了编程方式。不过我以前从未遇到过这种情况,因此我认为编程方式将是一种更简单的解决方案。您应该能够在
.h
中创建
IBOutlet
,然后使用IB连接该属性。没关系,我重新创建了类和xib,这很有效。使用IB以“传统”方式完成。谢谢大家!实例变量,而不是类变量。这是我最初的计划。。也是这个问题的根源。我只是想在IB中创建它并将其连接到一些代码,但是我无法按ctrl键将其拖动到.h文件,也无法将.h中的uiactivityindicator连接到.xib对象,因此我采用了编程方式。不过我以前从未遇到过这种情况,因此我认为编程方式将是一种更简单的解决方案。您应该能够在
.h
中创建
IBOutlet
,然后使用IB连接该属性。没关系,我重新创建了类和xib,这很有效。使用IB以“传统”方式完成。谢谢大家!