2015-01-21 45 views
-1

我有使用AFNetworking傳入的JSON數據。 responseObject包含如下所示的對象數組:[{"id":"XX", "description":"XX"}, {"id":"XX", "description":"XX"}]。此內容複製到NSArray,通過objectAtIndex: valueForKey:獲得價值訪問。iOS,爲數組創建對象

我知道object-c過於複雜,所以我猜這是一廂情願的想法,但如何創建一個快速的對象來使用爲零的事件呢?

(任何提交對象的C程序員,你要原諒我的直率與高級語言的工作會導致邏輯無知)

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

你對 - Objective-C過於複雜,除非與所有聲稱比較簡單的語言相比。 – 2015-01-21 12:20:53

回答

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),,@(YES)
+0

我最終解決了API端的空問題,但是如果發生意外的空,我會使用它。非常感謝 :) – 2015-01-21 12:02:55

0

的數據你是顯示有2個部分:

多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