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方法中释放它,这是不正确的内存管理