我想將RestKit v.20納入我的iOS應用程序。我從RKObjectRequestOperation獲得了正確的映射結果,但是我找不到將它放入NSDictionary的好方法。我返回了十六進制值的對象數組。我可以通過使用objectAtIndex獲取所需的所有特定項目的值:但我需要一個包含所有值的字符串格式的地方,而不是十六進制。我只能通過將關聯的類設置爲等於單個數組對象來從十六進制更改爲字符串。我想要一個通用列表,以便我可以預測它用於搜索。RKMappingResult問題。找不到從結果中獲取NSDictionary的方法
這裏是JSON數據:
{
"carsInShop": [
{
"car": {
"id": "1",
"name": "Mercedes",
"year": "2000"
}
},
{
"car": {
"id": "2",
"name": "BMW",
"year": "2004"
}
},
{
"car": {
"id": "3",
"name": "Audi",
"year": "2001"
}
},
{
"car": {
"id": "4",
"name": "Lexus",
"year": "2011"
}
},
{
"car": {
"id": "5",
"name": "Toyota",
"year": "2006"
}
},
],
"count": 5
}
這裏就是我有代碼的問題:
NSURL *URL = [NSURL URLWithString: @"http://localhost:8888/testphpread/index.php"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
RKObjectRequestOperation *objectRequestOperation = [[RKObjectRequestOperation alloc] initWithRequest:request
responseDescriptors:@[responseDescriptor]];
[objectRequestOperation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
RKLogInfo(@"CarsInShopArray: %@", mappingResult.array);
carsInShopArray = [mappingResult array];
CarsInShop* carsInShop = [carsInShopArray objectAtIndex:0];
NSLog(@"Loaded Car ID #%@ -> Name: %@, Year: %@", carsInShop.car.id, carsInShop.car.name, carsInShop.car.year);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
RKLogError(@"Operation failed with error: %@", error);
}];
這是我從NSLog的獲得:
CarsInShopArray: (
"CarsInShop: 0xa26b0f0",
"CarsInShop: 0xa46b2f0",
"CarsInShop: 0xa46af20",
"CarsInShop: 0xa46b7a0",
"CarsInShop: 0xa46bd90",
)
Loaded Car ID #1 -> Name: Mercedes, Year: 2000
所以你請參閱我可以獲取單個項目,但是我需要訪問整個字典,以用於搜索。
是否有可能有'CarsInShop * carsInShop'對象保持整個陣列?到目前爲止,我一直在使用'carsInShop = [carsInShopArray objectAtIndex:0]'或'indexPath.row'。但這只是一個項目。我怎樣才能訪問'carsInShop.car'並讓它顯示出陣列中所有的汽車? –
或者是否可以將'carsInShopArray'改成一個填充實例內容而不是指針的數組? –
謝謝你的回答。在查看你的編輯之後,我發現我的謂詞必須從'SELF.car.name'改爲'SELF。%K.%K'。 –