Cách tiếp cận tốt nhất để sử dụng tính năng chuyển nền để tải nội dung từ thư viện là gì?NSURLSession: tải lên nội dung có chuyển nền
Có vẻ như uploadTaskWithRequest:fromData:
không làm việc với NSURLSession
tạo ra với backgroundSessionConfiguration
vì nó gây ra một ngoại lệ: "Chấm dứt ứng dụng do ngoại lệ còn tự do 'NSGenericException', lý do: 'Tải lên nhiệm vụ trong phiên nền phải từ một tập tin". Đánh giá từ việc chuyển giao nền mô tả ngoại lệ cũng không hoạt động với các tác vụ tải lên được truyền trực tuyến.
Đủ công bằng. uploadTaskWithRequest:fromFile:
là điều đầu tiên xuất hiện khi bạn nghĩ đến việc tải lên dữ liệu mà bạn đã có trên đĩa. Nhưng tham khảo lớp NSURLSession cho chúng ta biết rằng phương thức này chỉ làm việc với các tệp url, nhưng khi bạn nhận được đường dẫn url của nội dung, nó bắt đầu từ "asset-library: // asset/..." và cung cấp đường dẫn này cũng không hoạt động.
Vì vậy, có vẻ như tùy chọn duy nhất còn lại là sao chép tệp từ thư viện nội dung vào thư mục tạm thời và cung cấp url tệp của nó tới uploadTaskWithRequest:fromFile:
. Nhưng nó không có ý nghĩa gì bởi vì bạn đã lưu tập tin tài sản trên đĩa của bạn. Tôi có thiếu gì đó không?
Cập nhật:
Nói chuyện với kỹ sư của Apple tại sự kiện Tech Talks và ông khẳng định rằng NSURLSession nền hỗ trợ chỉ nộp url. Vì vậy, thực sự, bạn cần phải sao chép thư viện tài sản vào một thư mục tạm thời, và cung cấp url của nó tập tin để uploadTaskWithRequest:fromFile:
để tải lên nó với nền NSURLSession. Hành vi này có thể thay đổi trong tương lai.
Vâng, vâng. Sao chép tập tin về cơ bản là những gì tôi đang làm bây giờ. Làm thế nào là sự tiến bộ của bạn với nsursession? –
Đoán của bạn có vẻ đúng. –
@RobertGeifman Vì vậy, về cơ bản uploadTaskWithRequest: fromData: không hoạt động? – marciokoko