2015-07-09 15 views
9

Tôi đã cố gắng sửa đổi dự án của mình để hỗ trợ kiến ​​trúc WatchOS2. Hiện tại tôi có một khung công tác mạng dựa trên AFNetworking. Tôi đã sử dụng nó với ứng dụng đồng hồ của mình cho đến nay. Bây giờ tôi đang cố gắng xây dựng khung cho các nền tảng watchos/watchsimulator.Tôi có thể xây dựng khuôn khổ mạng của riêng mình (phụ thuộc vào AFNetworking) làm khung watchOS2 không?

Những gì tôi nhận được là 'SystemConfiguration/SystemConfiguration.h' không tìm thấy lỗi cho một số lớp AFNetworking.

Tôi biết rằng cấu hình hệ thống không phải là một trong các khung hệ thống có sẵn cho watchOS2. Và đối với táo says mạng:

Mạng

Hỗ trợ cho các hoạt động dựa trên mạng bao gồm các công nghệ sau:

mở rộng WatchKit thể truy cập mạng trực tiếp sử dụng một đối tượng NSURLSession. Tiện ích WatchKit có toàn quyền truy cập vào các khả năng của NSURLSession, bao gồm khả năng tải xuống tệp trong nền. Để biết thông tin về cách sử dụng lớp này, hãy xem URL Tải Hướng dẫn lập trình hệ thống. Khung kết nối Đồng hồ hỗ trợ liên lạc hai chiều giữa ứng dụng Đồng hồ và ứng dụng iOS của bạn. Sử dụng khung này để điều phối hoạt động giữa hai ứng dụng. Để biết thêm thông tin, hãy xem Giao tiếp với ứng dụng iOS đồng hành của bạn.

Tôi muốn hỗ trợ cả iOS và watchos cho sdk mạng của mình. Có cách nào để làm cho dự án này được xây dựng cho nền tảng watchOS không? Hoặc điều đó có nghĩa là tôi chỉ được phép sử dụng NSURLConnection bên trong ứng dụng đồng hồ của mình?

Trả lời

0

Theo AFNetworking documentation:

URL tải Các lớp phổ biến nhất được sử dụng trong các hệ thống URL tải cho phép ứng dụng của bạn để lấy nội dung của một URL từ nguồn. Bạn có thể truy xuất nội dung đó theo nhiều cách, tùy thuộc vào yêu cầu của ứng dụng của bạn. API bạn chọn phụ thuộc vào phiên bản của OS X hoặc iOS mục tiêu ứng dụng của bạn và cho dù bạn muốn để có được những dữ liệu như một tập tin hoặc một khối trong bộ nhớ dữ liệu:

  • Trong iOS 7 và sau hoặc OS X v10.9 trở lên, NSURLSession là API ưu tiên cho mã mới thực hiện yêu cầu URL.

Nếu bạn xem biểu đồ trên trang đó, nó cho thấy AFNetworking thực sự sử dụng NSURLSession trong một số trường hợp. Tuy nhiên, vì khung SystemConfiguration không có trong watchkit, bạn sẽ cần phải loại bỏ sự phụ thuộc đó để bao gồm AFNetworking trong cả ứng dụng iOS và watchkit của bạn.

Tôi không chắc chắn AFNetworking sử dụng khuôn khổ này cho mục đích gì (có lẽ rất quan trọng!), Nhưng nếu có một số file mà không cần các thiết lập trong ứng dụng đồng hồ, bạn có thể chỉnh sửa mã nguồn AFNetworking để không bao gồm những mặt hàng trên các ứng dụng đồng hồ:

#if os(iOS) 
// Include SystemConfiguration framework 
#elseif os(watchOS) 
// Exclude SystemConfiguration framework 
#endif 
0

Đây là một cam kết gần đây trên github để AFNetworking hỗ trợ watchOS.

Nhìn vào changelog ..

Version 2.6.0 hỗ trợ watchos ...

Phiên bản này hiện hỗ trợ watchOS 2.0, dựa trên các điều kiện mục tiêu chỉ xuất hiện trong Xcode 7 và iOS 9/watchOS 2.0/OS X 10.10. Nếu bạn cài đặt thư viện bằng CocoaPods, AFNetworking sẽ xác định các điều kiện mục tiêu này cho các nền tảng cũ hơn, cho phép mã của bạn tuân thủ. Nếu bạn không sử dụng Cocoapods, bạn sẽ cần phải thêm mã sau vào tệp PCH của bạn.

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