0

うまく機能している iOS SDK を使用して Amazon S3 にアップロードしていますが、ロードが完了したときにメソッドをトリガーできるようにしたいと考えています。

これが私のコードです:

AmazonS3Client *s3 = [[[AmazonS3Client alloc] initWithAccessKey:ACCESS_KEY_ID withSecretKey:SECRET_KEY] autorelease];
// Create the picture bucket.
[s3 createBucket:[[[S3CreateBucketRequest alloc] initWithName:[Constants pictureBucket]] autorelease]];
NSString *picName = [NSString stringWithFormat:@"%@%d", PICTURE_NAME, counter];
// Upload image data.  Remember to set the content type.
S3PutObjectRequest *por = [[[S3PutObjectRequest alloc] initWithKey:picName inBucket:[Constants pictureBucket]] autorelease];
NSLog(@"------------ SUBMITTING img :%@", picName);
por.contentType = @"image/jpeg";
por.data        = imageData;
counter++;                   
// Put the image data into the specified s3 bucket and object.
[s3 putObject:por];

どんな助けでも大歓迎です!

4

2 に答える 2

1

Amazon SDK Docsから、あなたはS3PutObjectResponse

それで

S3PutObjectResponse *response  = [s3 putObject:por];
if ([response isFinishedLoading]) {
    //do something
}

または、 AmazonServiceResponse クラスリファレンスconnectionDidFinishLoading:に従って使用しているように見える NSURLConnection からのデリゲートメソッドを探しているかもしれません

.h ファイルで、NSURLConnection のデリゲート プロトコルに準拠していることを宣言します。

@interface MyClass : NSObject <NSURLConnectionDelegate>

.m ファイルで、必要なデリゲート メソッドを実装します。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
      //do your stuff here
}

そして、.m ファイルでデリゲート メソッドを処理することを NSURLConnection に伝えます。

S3PutObjectRequest *por = [[[S3PutObjectRequest alloc] initWithKey:picName inBucket:[Constants pictureBucket]] autorelease];
por.urlRequest.delegate = self; // this is important !!!

一般に、デリゲートは iOS SDK の穴を介して使用されることが多いため、デリゲートの操作に慣れる必要があります。

ここで追加のドキュメントを見つけることができます: Delegates and Data Sources

于 2012-06-13T10:52:19.827 に答える
0

コメントに追加することがもう 1 つあります (ここで行為を行っていないことはわかっていますが、担当者がコメントを禁止しています)。最初の行はその値を一貫して保持していないことがわかったので、安全のためにこれらの 2 行を実行します。

    por.delegate = self;
    [por setDelegate:self];

あなたは私のような初心者であるため、デリゲートは基本的に、必要な場合とそうでない場合がある必須メソッドを呼び出すときにオブジェクトが参照するハンドラーです。デリゲートを に設定すると、Pfitz の回答のメソッドなど、呼び出されたときにselfputObjectRequest が必須のメソッドを参照することを意味します。selfの場合UITableView、デリゲート メソッドの例は(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath、オブジェクトがそのオブジェクトのセル キューに値を設定するためにメソッドを探すためにUITableView参照する場所です。selfcellForRowAtIndexPath

于 2014-05-09T09:10:03.330 に答える