2013-09-30 48 views
5

Tôi đang cố gắng chuyển đổi từ ASIHttpRequest thành AFNetworking nhưng dường như tôi đang gặp phải lỗi "Sử dụng số nhận dạng không khai báo AFURLSessionManager" trên dòng sau trong lớp học của tôi.AFNetworking bao gồm tiêu đề

AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration]; 

Tôi đã bao gồm những điều sau đây vào tiêu đề của tôi:

#import "AFNetworking.h" 
#import "AFURLSessionManager.h" 

Nó phải là một cái gì đó thực sự rõ ràng, nhưng có một rắm não xấu ngay bây giờ.

+0

bạn đã nhập khung như thế nào? Bạn đang sử dụng CocoaPods? –

+0

Tôi thực sự chỉ cần kéo thư mục AFNetworking vào dự án của tôi, giống như nó đã có ở đây http://mobile.tutsplus.com/tutorials/iphone/ios-sdk_afnetworking/ –

+0

... bạn đã tải AFNetworking từ kho lưu trữ hay từ liên kết trên trang web hướng dẫn? – lxt

Trả lời

5

Các hành vi đơn giản được giải thích bởi dòng mã này trong AFURLSessionManager.h

#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090) 

AFURLSessionManager tận dụng NSURLSession, trong đó có sẵn từ iOS 7 (và OSX 10.9) trên.

Nếu bạn đang nhắm mục tiêu iOS 6, AFURLSessionManager thì không thể sử dụng được và nó bị loại bỏ lúc biên dịch. Đó là lý do tại sao bạn nhận được lỗi.

Đặt iOS 7 làm mục tiêu triển khai tối thiểu sẽ khắc phục lỗi biên dịch, mặc dù nó có thể không phù hợp với nhu cầu của bạn.


Điều đó nói rằng, đề xuất của tôi là sử dụng CocoaPod để quản lý các phụ thuộc bên thứ ba, chẳng hạn như AFNetworking.

AFNetworking 2.0 là khuôn khổ mô-đun, có nghĩa là bạn có thể chọn mô-đun để sử dụng theo nhu cầu của mình. Cốt lõi hỗ trợ iOS 6, nhưng một số mô-đun chỉ hỗ trợ iOS 7, chẳng hạn như mô-đun NSURLSession là mô-đun trong đó AFURLSessionManager thuộc về.

Modularity đạt được bằng cách sử dụng CocoaPods subspecs. Để nhập AFNetworkingNSURLSession module, bạn sẽ chỉ phải làm một cái gì đó giống như

platform :ios, '7.0' 

pod 'AFNetworking',    '~> 2.0' 
pod 'AFNetworking/NSURLSession', '~> 2.0' 

Bạn vẫn có thể nhắm mục tiêu iOS 6, nhưng bạn sẽ không nhận được submodules không tương thích, như quy định trong tài liệu hướng dẫn CocoaPods.

Subspec có thể hạn chế nền tảng của đặc tả gốc. Trong trường hợp này, nó sẽ được thừa kế bởi đặc tả cha mẹ chỉ khi đích của podfile hỗ trợ nó.

+0

Đã sửa lỗi, tôi đã sử dụng lệnh cocoapods để cài đặt AFNetworking rồi phải thêm "$ {PODS_ROOT}/BuildHeaders" vào Đường dẫn Tìm kiếm Tiêu đề trong Cài đặt Xây dựng. –

+0

thực sự nếu bạn sử dụng cocoapods nó tạo ra một không gian làm việc được cấu hình tự động. Chỉ cần mở không gian làm việc và sử dụng nó thay vì dự án. –

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