0

How to upload using AFNetworking in ios app extension?

apple's example uses NSURLSession, can you explain to me how this works?

- (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];
    }];
}

}

How do I upload this data using this method or using AFNetworking or using my app to upload this?

- (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];

}
Ted
  • 22,696
  • 11
  • 95
  • 109

1 Answers1

0

You should setting app group both Your extension and containing app,then config session like this

config.sharedContainerIdentifier =  @"group.xxxxx";

You can refer more info by this tutorial http://www.shinobicontrols.com/blog/posts/2014/07/21/ios8-day-by-day-day-2-sharing-extension

PanLin
  • 43
  • 1
  • 7