2

バックグラウンドでサーバーにビデオをPOSTする必要があります。これまで、POST時にこの種のパターンを使用してきました。

- (BOOL)loginUser:(user *)user
{
    BOOL ret = NO;

    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    [appDelegate.waitView startWithMessage:@"Signing in ..."];

    [self.objectManager postObject:user usingBlock:^(RKObjectLoader *loader)
     {
         loader.delegate = self;
         loader.targetObject = nil;

         loader.objectMapping = [RKObjectMapping mappingForClass:[user class] usingBlock:^(RKObjectMapping *mapping)
                             {
                                 [mapping mapKeyPath:@"id" toAttribute:@"ID"];
                                 [mapping mapKeyPath:@"last_name" toAttribute:@"last_name"];
                                 [mapping mapKeyPath:@"first_name" toAttribute:@"first_name"];
                                 [mapping mapKeyPath:@"middle_name" toAttribute:@"middle_name"];
                                 [mapping mapKeyPath:@"email" toAttribute:@"email"];
                                 [mapping mapKeyPath:@"password" toAttribute:@"password"];
                                 [mapping mapKeyPath:@"authentication_token" toAttribute:@"authentication_token"];
                             }];

         loader.serializationMapping = [loader.objectMapping inverseMapping];
         loader.serializationMapping.rootKeyPath = NSStringFromClass([user class]);
     }];

    return ret;
}

...しかし、このパターンでは、backgroundPolicyを設定するRKRequestオブジェクトにアクセスできないようです。だから、私は次のようにRKClientを使用することを検討しました:

- (BOOL)postBigMediaFile:(NSString *)pathToBigFile
{
    BOOL ret = NO;

    NSString *resourcePath = @"/bigFile";

    [[RKClient sharedClient] post:resourcePath usingBlock:^(RKRequest *request)
     {
         request.backgroundPolicy = RKRequestBackgroundPolicyContinue;

         // how do I set up the object mapping?


     }];

    return ret;
}

...しかし、RKRequestオブジェクトには、マッピングを設定するためのRKObjectLoaderにアクセスする方法がないようです。オブジェクトマッピングを使用してバックグラウンドでデータを投稿するにはどうすればよいですか?

4

1 に答える 1

2

愚かな私...RKObjectLoaderはRKRequestのサブクラスなので、loader.backgroundPolicy =...:-)を実行できます。

于 2012-07-31T23:17:17.137 に答える