2009-06-05 110 views
0

當我在iphone應用程序關閉時查看控制檯時,看起來好像我的encodewithcoder被調用了兩次。即使我只編碼一次'NewsItems'一次。NSKeyedArchiver被調用兩次

這是正常的嗎?

(void)encodeWithCoder:(NSCoder *)encoder { 
    NSLog(@"News encode called %@", self.title);  

    [encoder encodeObject:self.newsItemId forKey:KNewsItemNewsIdKey]; 
    [encoder encodeObject:self.title forKey:KNewsItemTitleKey]; 
    [encoder encodeObject:self.author forKey:KNewsItemAuthorKey]; 
    [encoder encodeObject:self.description forKey:KNewsItemDescriptionKey]; 
    [encoder encodeObject:self.imageUrl forKey:KNewsItemImageUrlKey]; 
    [encoder encodeObject:self.thumbnailUrl forKey:KNewsItemThumbnailUrlKey]; 
    [encoder encodeObject:self.createdAt forKey:KNewsItemCreatedAtKey]; 

    //Images 
    //convert from PNG to NSData, other method available for JPG 
    NSData *savedImageData = UIImagePNGRepresentation(self.savedImage); 
    [encoder encodeObject:savedImageData forKey:KNewsItemSavedImageKey]; 

    NSData *thumbnailImageData = UIImagePNGRepresentation(self.savedThumbnail); 
    [encoder encodeObject:thumbnailImageData forKey:KNewsItemSavedThumbnailKey]; 

} 


//code to encode 
    [archiver encodeObject:self.newsArray forKey:KNewsArrayDataKey]; 

回答

0

把你NSLog()聲明一個斷點,並檢查堆棧跟蹤,看看誰在每次給你打電話。