Objective c 在IOS中创建类实例的最佳方法是什么
我有一个名为Objective c 在IOS中创建类实例的最佳方法是什么,objective-c,ios,Objective C,Ios,我有一个名为“WebServicesiPhone”的类。。。。我想创建这个类的一个实例,执行一些json解析函数,并将结果内容存储到委托类中的一些数组中 如何在其他类中声明该类的实例…这是最好的方法 WebServicesiPhone *newsParser = [[WebServicesiPhone alloc] init]; [newsParser getData:0:nil:0:0]; [newsParser release]; 或者我必须在其他类的.h文件中声明一个实例。。像这样 We
“WebServicesiPhone
”的类。。。。我想创建这个类的一个实例,执行一些json解析函数,并将结果内容存储到委托类中的一些数组中
如何在其他类中声明该类的实例…这是最好的方法
WebServicesiPhone *newsParser = [[WebServicesiPhone alloc] init];
[newsParser getData:0:nil:0:0];
[newsParser release];
或者我必须在其他类的.h文件中声明一个实例。。像这样
WebServicesiPhone *newsParser;
并在方法文件中分配。。如果我在使用此方法时必须在使用后释放对象
newsParser = [[WebServicesiPhone alloc] init];
这完全取决于您是否希望公开该实例。如果您不需要,请像在第一个示例中一样使用局部变量
如果使用其他方法,请在类的dealloc方法中释放实例。我认为您混合了一些术语,因此我将尝试尽可能简单地解释
WebServicesiPhone*新闻解析器代码>不是一个实例,它是一个变量。如果在.h文件中用大括号声明,则它是一个实例变量,因为类的每个实例都有一个实例变量。如果它是在.m文件中的某个地方声明的,则它是一个局部变量,仅在声明它的代码块中可用
[[WebServicesiPhone alloc]init]
实例化类型为WebServicesiPhone
的新对象,也称为实例,当您将该对象的值赋给newsParser
时,无论是实例还是局部变量,它(newsParser
)都将成为指向类实例的指针
因此,如果必须在代码中使用此newsParser
,最佳做法是为其创建一个实例变量(甚至是一个属性),并在类“dealloc
方法”中释放它。如果只在一个代码块内需要它,例如在init
方法实现内,只要创建一个局部变量,并在完成后立即释放它。如果您希望WebServicesiPhone
的实例变量具有类作用域,并且如VdesmedT所说,如果您希望公开该实例变量,您可以通过不在.h
中声明而在类扩展中声明来隐藏公开该变量在.m
中具有类范围。完成后释放它。通常在dealloc中,但假设您在-(void)createWebService
中alloc init这个实例,并反复调用它,然后在类的dealloc方法中释放它,这是不正确的内存管理