簡體   English   中英

無法通過YAJLiOS解析json數據

[英]Can't parse json Data via YAJLiOS

起初我正在嘗試訪問我的app文件夾中的本地文件:

    NSData *data = [NSData dataWithContentsOfFile:
                                      [@"countries.json" stringByExpandingTildeInPath]];

結果始終為NULL

然后我試着檢查文件是否存在:

    NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString* foofile = [documentsPath stringByAppendingPathComponent:@"countries.json"];
    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:foofile];

它不存在,我使用以下代碼來訪問我的json文件:

    NSString *data1 = [[NSBundle mainBundle] pathForResource:@"countries" ofType:@"json"];
    NSData *data2 = [[NSData alloc] initWithContentsOfFile:data1];

它獲取文件,但當我嘗試解析它時:

    NSDictionary *dict1 =[data2 yajl_JSON];

我收到一個錯誤:

    [NSConcreteData yajl_JSON]: unrecognized selector sent to instance 0x6838d60

我的問題是下一個

  • 有沒有機會將NSData轉換為NSConcreteData?

  • 我使用正確的方法來訪問數據嗎?


Api文檔 - http://gabriel.github.com/yajl-objc/

我的Xcode構建階段的屏幕截圖:

在此輸入圖像描述

根據YAJL文檔,您嘗試調用的方法確實存在。

這只留下一個選擇; 你還沒有與YAJL框架完全聯系起來。

確保它顯示在App目標的鏈接框架/庫列表中,就像我的示例中顯示的CFNetwork.framework一樣。

在此輸入圖像描述

由於您嘗試調用的方法實際上是NSData 類別的一部分,因此請確保在其他鏈接器標志中包含-ObjC

在此輸入圖像描述

來自Apple的技術問答

此標志使鏈接器加載定義Objective-C類或類別的庫中的每個目標文件。 雖然此選項通常會導致更大的可執行文件(由於加載到應用程序中的其他對象代碼),但它將允許成功創建包含現有類的類別的有效Objective-C靜態庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM