2008-12-24 26 views
6

Tôi có một vấn đề để làm việc với NSMutableData.NSMutableData hoạt động như thế nào?

Tôi đã xác định một NSMutableData *receivedData và cố sao chép một số dữ liệu NSData* vào receivedData. Tôi vừa gọi là [receivedData appendData:data], nhưng xuất hiện dữ liệu không được sao chép:

.... 
NSLog(@"get data! Received %d bytes of data",[data length]); 
    // output is not zero, say 1231. 

[receivedData appendData:data]; 
NSLog(@"after append! length is %d bytes of data",[receivedData length]); 
    // showing zero 

Cảm ơn.

Trả lời

15

Kiểm tra xem receivedData == nil. Nếu có, thì bạn có thể đã quên khởi tạo nó. Ví dụ:

receivedData = [[NSMutableData alloc] init]; 

Sau đó thả nó khi bạn không cần nó nữa:

[receivedData release]; 
receivedData = nil; 
+0

Vâng, đó là vấn đề. Ban đầu tôi nghĩ nếu nó là nil, nó sẽ báo cáo lỗi. Cám ơn rất nhiều. – BlueDolphin

+1

Trong mục tiêu-C nó là hợp pháp để gửi tin nhắn đến nil, do đó, không có lỗi ở đó. – Abizern

Các vấn đề liên quan