我有一個被調用多次的函數,它創建的數據通過tcp發送到服務器。我想我在某處丟失數據。NSMutableData正確的方式?
我想知道什麼是正確的方式去:在節目的開始使用finalData=[[NSMutableData alloc]init];
,而且比函數發送像(被調用很多次):
-(NSMutableData*)setProtocolDataForString:(NSString*)data{ finalData=nil; //here construct new finalData..
,或者whitin的功能,其保持:
-(NSMutableData*)setProtocolDataForString:(NSString*)data{
finalData=[[NSMutableData data]retain]; //but its wrong because it happens many times
//construct a finalData to send
我沒有使用ARC。 第一路崩潰,第二路 - 我想我失去了他..
我應該使用財產?如果是的話,那麼確切的方法是什麼?
硬盤從一小段代碼的說。但是,是的,當你保留某些東西時,應該在不使用時釋放它。每個保留一個(自動)釋放。我想這不是你的問題。你說這個函數被調用了很多次。可能會在早期傳輸仍在進行中時調用它?如果是這樣,那麼你不應該只分配一次'finalData'並重新使用它。分配您爲每個單獨傳輸傳輸的數據,並在傳輸完成時釋放該數據。 – 2013-03-07 09:03:12