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
的剩余方法。那就是您获取数据的地方。例如,如果要使用块,则可以使用this。 Atomic
保证即使多个线程正在访问ivar并对其进行更改,值也将始终存在。如果您将其作为nonatomic
,则可以得到一些提升。您的应用程序逻辑应负责数据的完整性,而不是负责setter / getter的综合方式。因此,通常应为nonatomic
。
首先,我认为使用ARC时,应该只将其接收即可。
[NSMutableData数据]
是的,足够了。