0

iOSアプリ拡張機能でAFNetworkingを使用してアップロードする方法は?

Apple の例では NSURLSession を使用していますが、これがどのように機能するか説明してもらえますか?

- (void)didSelectPost {
NSExtensionItem *imageItem = [self.extensionContext.inputItems lastObject];


// Verify that we have a valid NSExtensionItem
if (!imageItem) {
    return;
}

// Verify that we have a valid NSItemProvider
NSItemProvider *imageItemProvider = [[imageItem attachments] firstObject];
if (!imageItemProvider) {
    return;
}

// Look for an image inside the NSItemProvider
if ([imageItemProvider hasItemConformingToTypeIdentifier:(NSString *)kUTTypeImage]) {
    [imageItemProvider loadItemForTypeIdentifier:(NSString *)kUTTypeImage options:nil completionHandler:^(id item, NSError *error) {
        if (item)
        {

            NSData *data = [NSData dataWithContentsOfURL:item];
            [self method:data];
        }

        [self.extensionContext completeRequestReturningItems:nil completionHandler:nil];
    }];
}

}

この方法、AFNetworking、またはアプリを使用してこのデータをアップロードするにはどうすればよいですか?

- (void)method:(NSData *)data
{
    NSString *confName = @"com.example.photoblog.backgroundconfiguration";
    NSURLSessionConfiguration *conf = [NSURLSessionConfiguration backgroundSessionConfiguration:confName];

    NSURLSession *session = [NSURLSession sessionWithConfiguration:conf delegate:self delegateQueue:nil];

    NSURLRequest *requeust = [self requestForExtensionItems];
    NSURLSessionUploadTask *upload = [session uploadTaskWithStreamedRequeust:request];

    [upload resume];

}
4

1 に答える 1

0

拡張機能とそれを含むアプリの両方にアプリ グループを設定してから、このような構成セッションを設定する必要があります

config.sharedContainerIdentifier =  @"group.xxxxx";

このチュートリアルで詳細情報を参照でき ます http://www.shinobicontrols.com/blog/posts/2014/07/21/ios8-day-by-day-day-2-sharing-extension

于 2014-09-06T08:25:33.157 に答える