2012-04-11 9 views
16

Tôi đã bị mắc kẹt với điều này trong một thời gian và không có vẻ để có được xung quanh này.NSCocoaErrorDomain Code = 256

Tôi cố gắng để đọc nội dung của một URL như là một chuỗi từ một URL, Nhưng tôi nhận được một kỳ lạ

Error -> Error Domain=NSCocoaErrorDomain Code=256 "The operation couldn’t be completed. (Cocoa error 256.)"

Mã của tôi:

fetchedString = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"www.example.com/iphone"] encoding:NSUTF8StringEncoding error:&error];          
    NSLog(@"%@",fetchedString); 

    // if there is something wrong with the URL 
    if (error) { 
     NSLog(@"Error -> %@", error); 
     return ; 
    } 

Tôi đang làm gì sai? Tôi đã thử sử dụng như là NSData là tốt, nhưng tôi nhận được null trở lại.

+5

thử thêm 'http: //' cho phần URL. – Eimantas

+0

đã hoạt động. thanks :) – Neelesh

Trả lời

14

Có, URL thiếu sơ đồ: "http: //".

"Lỗi -> Lỗi miền = NSCocoaErrorDomain Mã = 256"

Đối với các mã lỗi kiểm tra Apple documentation:

mã NSError trong lĩnh vực báo lỗi Cocoa.

NSFileReadUnknownError = 256, 

NSFileReadUnknownError
"Đọc lỗi, lý do không rõ"

Không phải là định nghĩa lỗi là rất hữu ích. :-)

Cũng không kiểm tra xem errornil để xác định xem có lỗi hay không, hãy kiểm tra giá trị trả lại cho nil. error không được đảm bảo là nil khi thực hiện thành công.

+0

Cảm ơn thông điệp của bạn. Nhưng tôi tìm thấy một cái gì đó thú vị hơn Tôi có mã sau đây. NSURL * serverUrl = [URL NSNVới chuỗi: @ "http://google.com"]; Lỗi NSError * = nil; NSString * stringFromStream = [NSString stringWithContentsOfURL: serverUrl encoding: NSUTF8StringEncoding error: & error]; NSLog (@ "chuỗi là% @ lỗi là% @", stringFromStream, lỗi); Tôi nhận được lỗi sau chuỗi là (null) lỗi là Lỗi miền = NSCocoaErrorDomain Code = 261 "Thao tác không thể hoàn thành. (Lỗi ca cao 261.)" UserInfo = 0x6a36c60 {NSURL = http: //google.com , NSStringEncoding = 4} – user454083

+0

Cách xử lý lỗi này –

+0

Đặt câu hỏi với mã tạo lỗi. – zaph

2

Tôi gặp lỗi này (Lỗi miền = NSCocoaErrorDomain Code = 256) ngay sau khi chứng chỉ ssl của chúng tôi hết hạn. có thể không giúp bạn nhưng có thể giúp người khác.

3

Sandboxing

Nếu bạn đang sử dụng sandboxing trong ứng dụng của bạn, bạn có thể muốn kiểm tra xem com.apple.security.network.client được thiết lập để YES. Đó là trong các chung tab Target của bạn trong Xcode 5 dưới

Mạng: Connections Outgoing (Client)

Cũng lưu ý rằng nếu bạn nhìn thấy một mã 257 khi cố gắng để đạt được một url file:///, đó cũng có thể là do hộp cát, nhưng lần này thay vì phần Truy cập tệp. Bởi vì tôi không muốn mở nó để bất cứ điều gì khác hơn `com.apple.security.files.user-selected.read-write'

tài chọn file

tôi ưa thích để sử dụng A Dead Simple Fileserver và sử dụng http://localhost:3000 khi ở chế độ Gỡ lỗi.

7

Tôi gặp sự cố tương tự khi truy cập các tệp nằm trên thiết bị của mình. Tôi đã theo dõi NSURL isFileURL always returns NO và sử dụng [NSURL fileURLWithPath] thay vì [NSURL URLWithString] - tính năng này đã hoạt động!

+1

Anh yêu em, anh bạn. Cảm ơn –

0

Tôi gặp lỗi tương tự. Câu trả lời được đánh dấu ở trên là hoàn hảo. Nhưng trong trường hợp của tôi, tôi đã có "http: //" trong url nhưng phải thêm số cổng trong yêu cầu url vì có một dịch vụ đang chạy trên một cổng cụ thể thực sự phản hồi yêu cầu của bạn. @"http://example.com:8084/yyy.zzz"

1

Các lý do khác mà có thể gây ra lỗi cụ thể này:

  1. SSL là cấu hình sai trên máy chủ
  2. Các trang đổi hướng máy chủ (301) URL http đến https (xem # 1)
  3. App transport security cũng sử dụng mã này cho các yêu cầu bị chặn.