2012-04-12 25 views
5

Im cố gắng sử dụng được xây dựng trong khuôn khổ JSON trong iOS5, nhưng tôi nhận được một vấn đề ARC khi cố gắng để biên dịch mã này:JSONValue ARC vấn đề

NSDictionary *results = [jsonString JSONValue]; 

Có một cách tương đương để làm điều này trong iOS5, mà không nêu vấn đề ARC?

ARC vấn đề là: Không @ interface có thể nhìn thấy cho 'NSString' tuyên bố chọn

+1

'NSString' không có phương thức' JSONValue' có thể bạn đã sử dụng danh mục trên 'NSString' ... là nó được nhập không? Nếu không, bạn cần xem [NSJSONSerialization] (http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html) –

+0

Cảm ơn sự giúp đỡ của bạn. Bạn đã đúng, tôi cần phải nhìn vào lớp NSJSONSerialization. – Lahib

+0

đây là những gì bạn muốn [Thay vì từ điển] (http://stackoverflow.com/questions/18782053/nsarray-returning-string-instead-of-dictionary) – qn5566

Trả lời

12

thông báo 'JSONValue' Các bạn nhận được có nghĩa là 'Không có phương pháp JSONValue khai báo trong NSString' (đó là hoàn toàn đúng). Để sử dụng trình nối tiếp JSON được tích hợp, hãy thử cái này:

NSError *error; 
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 
NSDictionary *results = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; 

Ps Đối với tùy chọn, xem tài liệu trên NSJSONSerialization lớp. Cũng lưu ý rằng kết quả có thể là một số NSArray.

+0

Rất cám ơn sự giúp đỡ. – Lahib