iOS,为数组创建对象

iOS, create object for array

我有 JSON 使用 AFNetworking 传入的数据。 responseObject 包含一个对象数组,如下所示:[{"id":"XX", "description":"XX"}, {"id":"XX", "description":"XX"}]。此内容被复制到 NSArray,其中按值访问是通过 objectAtIndex: valueForKey:.

获得的

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

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

if responseObject is nil
  destinationArray= [{id:XX, description:XX}, {id:XX, description:XX}]
else
  destinationArray = responseObject

您可以使用 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).

您显示的数据有两部分:

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

阅读更多信息:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/FoundationTypesandCollections/FoundationTypesandCollections.html