我有一个被多次调用的函数,它创建了通过tcp发送到服务器的数据。我想我在某处丢失数据。
我想知道什么是正确的方法:
在程序开头使用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。 第一种方式崩溃,第二种方式 - 我想我正在失去他......
我应该使用财产吗?如果是的话,这样做的具体方法是什么?
答案 0 :(得分:1)
好的,每次拨打电话时都会发送一大块数据
-(NSMutableData*)setProtocolDataForString:(NSString*)data;
您可以执行以下操作:
if(finalData){
[finalData release];
finalData = nil;
}
finalData = [[NSMutableArray alloc] init];