編碼二維數組我有兩個二維數組的自定義對象如下:在Objective-C
float a[5][5];
float b[5][10];
我想編碼這個對象:
- (void)encodeWithCoder:(NSCoder *)coder
{
// Encode a
// Encode b
}
我怎麼能編碼和解碼這些二維數組?我無法找到適當的方法來執行此操作。 在此先感謝,
編碼二維數組我有兩個二維數組的自定義對象如下:在Objective-C
float a[5][5];
float b[5][10];
我想編碼這個對象:
- (void)encodeWithCoder:(NSCoder *)coder
{
// Encode a
// Encode b
}
我怎麼能編碼和解碼這些二維數組?我無法找到適當的方法來執行此操作。 在此先感謝,
您可以創建一個結構與:
typedef struct myStruct {
float a[5][5];
float b[5][10];
}MyStruct;
然後使用NSValue將它們編碼爲對象。
MyStruct i;
memset(&i, 0, sizeof(i));
//Set values on struct
NSValue *v = [NSValue valueWithBytes:&i objCType:@encode(MyStruct)];
現在,您可以將您的結構視爲對象,然後使用NSArrays等。
要讀取的值,你可以使用:
MyStruct i;
[v getValue:&i];
我做了這樣的具有流和傳統服務器工作,它工作順利。
希望它有幫助。
將它們粘貼到用於編碼/解碼過程的objective-c容器中。
沒有預先建立的方法 - 你需要自己寫。最簡單的方法是先寫兩個int
,然後寫出所有的R*C
元素的行數和列數。
解碼同樣簡單 - 讀取R
和C
的兩個整數,然後運行兩個嵌套循環讀取float
s。
定義兩個輔助函數以避免複製粘貼同一代碼兩次。
感謝您的詳細信息 – Sami 2012-03-06 15:13:21