0
我目前正在使用initWithDecoder解碼我的數據通過無線傳輸。我注意到的一件事是,當它被稱爲它不能看到範圍內的變量,因此不表現我想要的方式,這裏是我所做的一個例子:解碼我的NSData
首先我編碼所有數據:
-(void) encodeWithCoder: (NSCoder *) encoder
{
for(BaseGroup *attackCard in myArray)
{
[encoder encodeObject: attackCard];
}
}
同一個類中我一直記的項目數的,我有:
self.numItems = [self.myArray count];
和內的initWithCoder我希望迭代和解碼編碼的NSData如下
-(id) initWithCoder: (NSCoder *) decoder
{
for(int i =0; i < self.numItems; i++)
{
[self.myArray addObject:[decoder decodeObject]];
}
return self;
}
問題在於initWithCoder超出了變量numItems的範圍,因此根本不會重複。有沒有解決的辦法?
你是什麼意思? – godzilla
我添加了一些代碼,我的答案...希望它可以幫助... – sergio
感謝塞爾吉奧,這似乎已經奏效,還需要進行更多的測試 - 簡單的問題 - 我需要賦予它新的價值正確之前發佈的陣列? – godzilla