「Camfind」API のサンプル コードをコンパイルしようとしていますが、応答ヘッダーの取得に失敗しています。
NSDictionary *responseHeaders = response.headers
ARCでは、Objective 以外の C ポインター型int *
を暗黙的に変換することNSDictionary
はできません。
ここに私の「podFile」があります:
# Uncomment this line to define a global platform for your project
platform :ios, '7.0'
target 'menswear' do
pod 'Unirest', '~> 1.1.3'
end
target 'menswearTests' do
end
このコードを使用して、最初にコンパイルをテストします。"here"から提供される例と同じです。
// These code snippets use an open-source library.
NSDictionary *headers = @{@"X-Mashape-Key": @"7ze1l1nX1Wmshc4yBzHqeWBldlkhp1CfGcmjsnATkTf58N2F8b", @"Content-Type": @"application/x-www-form-urlencoded", @"Accept": @"application/json"};
NSDictionary *parameters = @{@"focus[x]": @"480", @"focus[y]": @"640", @"image_request[altitude]": @"27.912109375", @"image_request[language]": @"en", @"image_request[latitude]": @"35.8714220766008", @"image_request[locale]": @"en_US", @"image_request[longitude]": @"14.3583203002251", @"image_request[remote_image_url]": @"http://upload.wikimedia.org/wikipedia/en/2/2d/Mashape_logo.png"};
UNIUrlConnection *asyncConnection = [[UNIRest post:^(UNISimpleRequest *request) {
[request setUrl:@"https://camfind.p.mashape.com/image_requests"];
[request setHeaders:headers];
[request setParameters:parameters];
}] asJsonAsync:^(UNIHTTPJsonResponse *response, NSError *error) {
NSInteger code = response.code;
NSDictionary *responseHeaders = response.headers
UNIJsonNode *body = response.body;
NSData *rawBody = response.rawBody;
}];
「ヘッダー」は、UNIHTTPJsonResponse が拡張する UNIHTTPResponse のプロパティです。
@interface UNIHTTPResponse : NSObject
@property(readwrite) NSInteger code;
@property(readwrite, strong) NSDictionary* headers;
@property(readwrite, strong) NSData* rawBody;
@end
これは非常に簡単なようです。int *
に表示されているものにもかかわらず、Xcode がヘッダーを として解釈する理由がわかりませんUNIHTTPResponse.h
。