0

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html#//apple_ref/doc/uid/20001836-BAJEAIEEから

NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
    // Create the NSMutableData to hold the received data.
    // receivedData is an instance variable declared elsewhere.
    receivedData = [[NSMutableData data] retain];
} else {
    // Inform the user that the connection failed.
}

私は比較的新しい iOS6 プログラマーです。まず、ARC ではreceivedData = [NSMutableData data]?

次に、receivedDataインスタンス変数をどのように宣言すればよいですか? @property (strong, nonatomic) NSMutableData *receivedData;ヘッダーと@synthesize receivedData実装で推測しています。

しかし、私はまだ iOS6 でマルチスレッドと ARC を理解しようとしています。プロパティ宣言は

@property (strong, nonatomic) NSMutableData *receivedData;

あるいは単に

@property (strong) NSMutableData *receivedData;

非同期 NSURLConnection のデリゲートで受信したデータに対して?

4

1 に答える 1

1

のremainメソッドを実装する必要がありNSURLConnectionDelegateます。ここでデータを取得します。たとえば、ブロックを使用する場合は、これを使用できます。Atomic複数のスレッドがivarにアクセスして変更している場合でも、値が常に存在することを保証します。あなたがそれをとして持っているならば、あなたはいくらかのブーストを得るnonatomic。アプリケーションロジックは、セッター/ゲッターの合成方法ではなく、データの整合性に責任を持つ必要があります。したがって、一般的には、である必要がありますnonatomic

まず、ARCではreceivedData = [NSMutableData data]?

はい、それで十分です。

于 2012-10-20T23:21:36.263 に答える