我有一个viewController显示一些内容。在头文件中,我定义了一个名为_clientRequest的实例变量,它是一个ClassA对象。 ClassA处理从服务器下载Json。
对于不同的用户,控制器中有1或2个使用ClassA的位置。
目前我的代码是这样的,
// 1st request. every user will do this.
_clientRequest = [ClassA alloc] initWithTarget......];
[_clientRequest download];
...
// 2nd request. some user will do this.
_clientRequest = [ClassA alloc] initWithTarget......];
[_clientRequest upload];
您可能会注意到_clientRequest" alloc"和" initWithTarget"两次。将来,服务器请求可能在此控制器中更多。所以我不想为1个请求声明1个变量。上面的代码有什么问题吗?如果变量是alloc并初始化的,那么如何重新分配并重新初始化它呢?我运行应用程序,没有崩溃发生。
我是obj-c的新手。英语不是我的母语。希望你能理解。
提前致谢!
答案 0 :(得分:0)
这会泄漏内存,因为您正在将ClassA分配给_clientRequest,然后分配另一个实例而不在第一个上调用 release 。以这种方式分配数据时,必须自己释放它。
您应在第二次致电[_clientRequest release];
[ClassA alloc]...