【发布时间】:2015-05-12 23:37:14
【问题描述】:
我对 Objective C 比较陌生。我有一个包含 NSDictionary 对象的 NSArray。我正在调用 Web 服务来获取数据。我有一个 PickerView,这是它的 DataSource(我实现了 numberOfRows):
- (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
NSString *proba = self.viewModel.searchResult.someArray[row];
return nil;
}
这是我的“proba”,数组中有 3 个 NSDictionaries:
这是我的“proba”,数组中只有 1 个 NSDictionary
问题是当我的服务返回 1 个字典时,我需要在 Array 中有 1 个 NSDictionoray 对象。如何解决这个问题?谢谢
编辑: 我的服务数组,这是我的选择器
- (void)SOAPManager:(SOAPManager *)client didSuccesWithoutError:(id)responseObject
{
SearchResult *result = [SearchResult new];
result.myArray = [responseObject allValues];
self.Result = result;
NSLog(@"Loaded successfully: %@", result.retailers);
}
'self.Result' 是用 RACObserver 观察到的,所以我可以在我的 ViewModel 中使用它。
这是 result.Retailers 有 3 个字典:
这有 1 部字典:
是的,当只有一个对象时,它只返回字典
【问题讨论】:
-
不幸的是,您的问题根本不清楚。选择器代码似乎与您的
proba数据结构没有任何关系。您是否尝试将服务器响应解析为不同的东西?如果是这样,请提供该代码(用于构建该数组的代码)。 -
如果
proba被声明为一个NSString,你为什么将它显示为一个数组或字典? -
只是为了在调试器中看到,我有 NSLog
-
再一次,如果
proba被声明为NSString,为什么调试器将其显示为数组或字典?
标签: ios objective-c arrays dictionary