2013-03-20 43 views
8

Tôi đang cố gắng phân tích cú pháp JSON cho ứng dụng ios 6, nhưng dường như không làm cho ứng dụng hoạt động. Tôi đã cọ rửa hàng tấn diễn đàn nhưng không tìm thấy giải pháp nào hoạt động, tôi hiểu đủ để triển khai hoặc áp dụng.Thao tác không thể hoàn thành. (Lỗi ca cao: 3840.)

Tôi xin lỗi nếu có lỗi tôi bỏ sót.

Trước tiên tôi có một WebService bài kiểm tra đó như xa như tôi có thể nói lợi nhuận JSON hợp lệ

http://thetrouthunter.com/SVLocationsAPI.php

Thứ hai, đây là mã Objective-C của tôi:

+ (NSDictionary *)connectToService:(NSString *)query 
{ 
    NSError *error = nil; 

    query = [NSString stringWithFormat:@"%@&format=json&nojsoncallback=1", query]; 
    query = [query stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

    NSData *jsonData = [[NSString stringWithContentsOfURL:[NSURL URLWithString:query] encoding:NSUTF8StringEncoding error:nil] dataUsingEncoding:NSUTF8StringEncoding]; 

    NSDictionary *results = jsonData ? [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers|NSJSONReadingMutableLeaves error:&error] : nil; 

    NSLog(@"locations: %@", results); 

    if (error) 
     NSLog(@"[%@ %@] JSON error: %@", NSStringFromClass([self class]), NSStringFromSelector(_cmd), error.localizedDescription); 

    return results; 
} 

+ (NSArray *)userLocation { 
    NSString *request = [NSString stringWithFormat:@"http://thetrouthunter.com/SVLocationsAPI.php"]; 
    return [[self connectToService:request] valueForKeyPath:@"locations.location"]; 
} 

Các ls NSLog chức năng đang in ra lỗi: "Không thể hoàn tất thao tác. (Lỗi ca cao: 3840.)"

Tôi không thể hiểu tại sao lại xảy ra trường hợp này. Tôi đã thử mọi thứ.

Trả lời

4

Bạn đang thêm %@&format=json&nojsoncallback=1 vào URL trong connectToService: và URL mới sẽ dẫn đến trang web, chứ không phải JSON bạn mong đợi (ví dụ: http://thetrouthunter.com/SVLocationsAPI.php&format=json&nojsoncallback=1). Có thể hữu ích khi đăng nhập kết quả thực tế từ yêu cầu HTTP để bạn có thể gỡ lỗi cho đến khi bạn nhận được JSON (tức là trước khi gọi các hàm tuần tự hóa).

+0

Tuyệt vời khi hoạt động .THANKS! Nhưng khi tôi đã sẵn sàng để bắt đầu thêm các tham số thông qua chuỗi truy vấn thì tôi sẽ làm như thế nào? – dherrin79

+0

Bạn có thể thêm tham số vào URL, chỉ cần đảm bảo đầu ra của tập lệnh là JSON :) – abellina

+0

Tôi hiểu. Tôi thậm chí không nhận ra rằng trang web của tôi đã chuyển hướng đến trang chủ khi chuỗi truy vấn được áp dụng. Cảm ơn sự giúp đỡ của bạn và trả lời siêu nhanh. – dherrin79

Các vấn đề liên quan