[iOS] Objective-c 對的Json操作(三) 編譯 Jastor to Library

  • 1523
  • 0
  • iOS
  • 2015-03-01

摘要:[iOS] Objective-c 對的Json操作(三)

在上一個章節,我們把Jastor檔案下載下來後,要在會參照到他的專案裡面引入四個檔案。

Jastor.h,Jastor.m,JastorRuntimeHelper.h,JastorRuntimeHelper.m。

相信這種把Json檔案序列回物件的方式你會常常需要使用到,因為目前WebApi的主流傳遞資料方式幾乎都是在走Json。所以這一章節來看怎麼把這個元件做成Static Library,讓其他專案都可以引用。

 

建立一個Cocoa Touch Static Library的專案。

 

在專案中加入Jastor專案中的2個.m檔案。

Jastor.m,JastorRuntimeHelper.m。

 

這邊用指令來編譯這個專案。打開終端機,將目錄移到這個專案路徑。

 

預設static library編譯後只能給ARM架構 IOS Device 執行, 由於iOS模擬器屬於X86架構, 因此需要再編譯一份程式讓模擬器執行. 請在終端機介面中用xcodebuild指令來產生相對應的檔案

n 產生iOS simulator 用的檔案

xcodebuild -sdk iphonesimulator -configuration Debug

n 產生 IOS Device 用的檔案

xcodebuild -sdk iphoneos -arch armv7 -configuration Debug

 

編譯完成後,可以看到專案路徑下多了兩個資料夾。資料夾裡面有兩個新產生出來的資料夾檔案。分別是Debug-iPhoneos與Debug-iphonesimulator。資料夾裡面都有一個A class。

 

接著建立一個iOS Signal View的專案,專案中把剛剛建立的.a檔案加入專案中,並且把Header檔也加進來。

 

接著在ViewController專案中的ViewDidLoa事件中撰寫下方的程式碼

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/benlu"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSDictionary* jsonobj =
    [NSJSONSerialization JSONObjectWithData:data
                                    options:NSJSONReadingMutableContainers
                                      error:nil];
    RootObject *product = [[RootObject alloc] initWithDictionary:jsonobj];
    
    NSLog(@"%@",product.name);
}

 

 

編譯程式後可以看到在iOS App中也可以把Json序列成物件,並且利用其屬性來存取內容了。

 

 

補充:

在使用XcodeBuild指令來編譯Static Library的時候,還需要注意到你編譯出來的Library是要給那個平台做使用的,例如:

iOS simulator 模擬器。

xcodebuild -sdk iphonesimulator -configuration Debug

armv6:

xcodebuild -sdk iphoneos -arch armv6 -configuration Debug

armv7:

xcodebuild -sdk iphoneos -arch armv7 -configuration Debug

 

另外編譯完成可以用Lipo去合併所有被編譯出來的.a檔案。

 

 

參考資訊:

https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/Articles/AddingaLibrarytoaTarget.html

This manual page is part of Xcode Tools version 5.0

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html