我在Objective-C中使用OpenCV靜態庫來執行一些圖像處理,儘管我的應用工作得很好,但在設備本身上它相當慢。大部分的處理事實上可以事先完成,所以我決定我將序列化這些數據,並在應用程序啓動時加載它。使用C++實例變量存檔/序列化Objective-C對象
我需要序列化/歸檔的數據位於CvSeq類型的對象(openCV序列 - 指向值序列的指針)。我基本上想把它保存到文件中,以便稍後加載它。我想我可以做一個類,遵守NSCoding協議和編碼/解碼,從有做到這一點:
@implementation MyObject
@synthesize point = _point;
@synthesize description = _description;
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super init]) {
self.point = [decoder decodeObjectForKey:@"point"];
self.description = [decoder decodeObjectForKey:@"description"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:self.point forKey:@"point"];
[encoder encodeObject:self.description forKey:@"description"];
}
@end
但在decodeObjectForKey:和encodeObject:電話我得到的錯誤
error: cannot convert 'objc_object*' to 'CvSeq*' in argument passing
是否有我的代碼有問題,或者我需要採取另一條路線,以實現與我的對象中的非客觀C實例變量相同的東西?
你也可以發佈頭文件嗎? – Felix 2011-04-12 15:58:36