2010-04-17 68 views
2

我需要一個NSDictionary,它具有字符串形式的鍵(@"key1", @"key2")和C形二維數組形式的值(valueArray1,valueArray2valueArray1定義爲:NSDictionary與鍵=>字符串和值=> c-style數組

 
int valueArray1[8][3] = { {25,10,65},{50,30,75},{60,45,80},{75,60,10}, 
          {10,70,80},{90,30,80},{20,15,90},{20,20,15} }; 

而同樣爲valueArray2。

我的目標是給出一個NSString我需要獲取相應的二維數組。 我想用一個NSArray,而不是C風格的數組,將工作,但然後我不能像上面做的那樣初始化數組(我有很多這樣的數組)。但是,如果這是可行的,請讓我知道如何。

目前被給予警告「傳遞參數1:從兼容的指針類型‘dictionaryWithObjectsAndKeys’」:以下

 
NSDictionary *myDict = [NSDictionary dictionaryWithObjectsAndKeys:valueArray1,@"key1", 
        valueArray2,@"key2",nil]; 

回答

2
成員

是valueArr ay2也是int[][3]?如果是這樣,您可以使用

[NSValue valueWithPointer:valueArray1] 

將數組轉換爲ObjC值。要檢索的內容,你需要使用

void* valuePtr = [[myDict objectForKey:@"key1"] pointerValue]; 
int(*valueArr)[3] = valuePtr; 
// use valueArr as valueArrayX. 

如果只是2鍵,它是更有效地使用功能類似

int(*getMyValueArr(NSString* key))[3] { 
    if ([key isEqualToString:@"key1"]) return valueArray1; 
    else return valueArray2; 
} 
0

而不是增加陣列直接作爲在NSDictionary的一個值使在其中創建變量的自定義類NSArray的......而且設置這個類對象作爲值就像

NSDictionary *myDict = [NSDictionary dictionaryWithObjectsAndKeys:MyClassObj1,@"key1", 
        MyClassObj2,@"key2",nil]; 

其中MyClassObj1和MyClassObj2是MyClass的

相關問題