来自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的委托中接收数据?

最佳答案

您应该实现NSURLConnectionDelegate的剩余方法。那就是您获取数据的地方。例如,如果要使用块,则可以使用thisAtomic保证即使多个线程正在访问ivar并对其进行更改,值也将始终存在。如果您将其作为nonatomic,则可以得到一些提升。您的应用程序逻辑应负责数据的完整性,而不是负责setter / getter的综合方式。因此,通常应为nonatomic


  首先,我认为使用ARC时,应该只将其接收即可。
  [NSMutableData数据]


是的,足够了。

10-08 07:49