Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS,为数组创建对象_Ios_Objective C_Afnetworking - Fatal编程技术网

iOS,为数组创建对象

iOS,为数组创建对象,ios,objective-c,afnetworking,Ios,Objective C,Afnetworking,我使用AFNetworking获得JSON数据。 responseObject包含如下对象数组:[{“id”:“XX”,“description”:“XX”},{“id”:“XX”,“description”:“XX”}]。此内容被复制到NSArray,其中通过objectAtIndex:valueForKey:获得按值访问 我知道object-c过于复杂,所以我猜这是一厢情愿的想法,但是如果responseObject为零,我该如何创建一个快速对象来使用呢 (任何致力于object-c编码的人

我使用AFNetworking获得JSON数据。
responseObject
包含如下对象数组:
[{“id”:“XX”,“description”:“XX”},{“id”:“XX”,“description”:“XX”}]
。此内容被复制到
NSArray
,其中通过
objectAtIndex:valueForKey:
获得按值访问

我知道object-c过于复杂,所以我猜这是一厢情愿的想法,但是如果
responseObject
为零,我该如何创建一个快速对象来使用呢

(任何致力于object-c编码的人,你必须原谅我的直率。使用更高级的语言会导致逻辑上的无知)


您可以使用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)
    @(是)

您显示的数据有两部分:

多个NSDictionary,创建它们的方法有很多:

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;
}

阅读更多信息:

我最终解决了API端的空值问题,但是如果出现意外的空值,我将使用它。非常感谢:)你说得对——Objective-C过于复杂,除非与所有声称更简单的语言相比。
if (responseObject == nil) {
    destinationArray = @[@{@"id":@"XX", @"description":@"XX"}, 
                         @{@"id":@"XX", @"description":@"XX"}];
} else {
    destinationArray = responseObject;
}