我使用AFNetworking来获取JSON数据。
responseObject
包含一系列对象,如:[{"id":"XX", "description":"XX"}, {"id":"XX", "description":"XX"}]
。此内容会复制到NSArray
,其中objectAtIndex: valueForKey:
可获取价值访问权。
我知道object-c过于复杂,所以我猜这是一厢情愿的想法,但是如果在responseObject
为零的情况下创建一个快速对象呢?
(任何承诺的对象-c编码员,你必须原谅我的直言不讳。使用更高级别的语言导致逻辑上的无知)
if responseObject is nil
destinationArray= [{id:XX, description:XX}, {id:XX, description:XX}]
else
destinationArray = responseObject
答案 0 :(得分:0)
你可以用Objective-C文字来做到这一点:
if (!responseObject) {
destinationArray= @[
@{ @"id":@"XX",
@"description":@"XX"},
@{ @"id":@"XX",
@"description":@"XX"}
];
} else {
destinationArray = responseObject;
}
其中:
NSArray
个对象为@[
... ]
。NSDictionary
个对象为@{
... }
。NSString
个对象为@"string"
。NSNumber
个对象为@(1)
,@(1.2f)
,@(1.2)
,@(YES)
。答案 1 :(得分:0)
您显示的数据有两部分:
多个NSDictionaries,有很多方法可以创建它们:
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:...,nil];
或者您可以使用其文字
来定义它们NSDictionary *dictionary = @{@"id":@"XX", @"description":@"XX"};
NSArray,要创建一个数组,您可以使用几个选项:
NSArray *array = [NSArray arrayWithObjects:...,nil];
或者,就像之前一样,您可以使用文字定义:
NSArray *array = @[dictionary1,dictionary2];
因此,您可以像这样创建整个对象:
if (responseObject == nil) {
destinationArray = @[@{@"id":@"XX", @"description":@"XX"},
@{@"id":@"XX", @"description":@"XX"}];
} else {
destinationArray = responseObject;
}