0

我有一个被多次调用的函数,它创建数据以通过 tcp 发送到服务器。我想我在某处丢失了数据。

我想知道正确的方法是什么:

  1. 在程序开始时使用 finalData=[[NSMutableData alloc]init];,而不是发送函数就像(被多次调用):

    -(NSMutableData*)setProtocolDataForString:(NSString*)data{ 
    finalData=nil;
    //here construct new finalData..
    

或者,在函数中,保留它:

 -(NSMutableData*)setProtocolDataForString:(NSString*)data{

finalData=[[NSMutableData data]retain]; //but its wrong because it happens many times
//construct a finalData to send

我没有使用 ARC 。第一种方式崩溃,第二种方式-我想我正在失去他..

我应该使用财产吗?如果是,那么这样做的确切方法是什么?

4

1 回答 1

1

好的,您每次调用时都会发送大量数据

 -(NSMutableData*)setProtocolDataForString:(NSString*)data;

您可以执行以下操作:

if(finalData){
 [finalData release];
 finalData = nil;
}

finalData = [[NSMutableArray alloc] init];
于 2013-03-07T09:00:27.210 回答