Objective c 从sendAsynchronousReques返回数据
目标c:我有一个serviceClass通过Objective c 从sendAsynchronousReques返回数据,objective-c,asynchronous,callback,return,Objective C,Asynchronous,Callback,Return,目标c:我有一个serviceClass通过NSURLConnection和sendAsynchronousRequest连接到数据库 我希望能够使用这个类方法并将db数据返回给任何其他请求它的类方法 但是既然sendAsynchronousRequest返回void,我该怎么做呢 我一点也想不到。阻碍?但是如何 请帮忙 atm我正在下面的codechunk中直接创建一个用户对象: [NSURLConnection sendAsynchronousRequest:urlRequest que
NSURLConnection
和sendAsynchronousRequest
连接到数据库
我希望能够使用这个类方法并将db数据返回给任何其他请求它的类方法
但是既然sendAsynchronousRequest
返回void,我该怎么做呢
我一点也想不到。阻碍?但是如何
请帮忙
atm我正在下面的codechunk中直接创建一个用户对象:
[NSURLConnection
sendAsynchronousRequest:urlRequest
queue:[[NSOperationQueue alloc] init]
completionHandler:^(NSURLResponse *urlResponse,
NSData *data,
NSError *error) {
if ([data length] > 0 && error == NULL){ // do success or error call with true or false
NSMutableData *incomingData;
if(!incomingData) {
incomingData = [[NSMutableData alloc]init];
}
[incomingData appendData:data];
NSString *string = [[NSString alloc]initWithData:incomingData
encoding:NSUTF8StringEncoding];
//incomingData = nil;
// create dictionary from json
NSData *jsondata = [NSData dataWithData:incomingData];
NSMutableDictionary *userDictionary = [NSJSONSerialization JSONObjectWithData:jsondata
options:NSJSONReadingMutableContainers
error:NULL];
// create user object
User *user = [User userFromDictionary:userDictionary];
NSLog(@"user back to object successfull!! %@", user);
}
}
您可以对incomingData使用属性,然后使用该属性将数据传递给其他方法/类
@property (nonatomic, retain) NSMutableData * incomingData;
现在您可以使用
self.incomingData
设置值,并且需要返回。您可以在其他方法中使用它,当您需要将它传递给其他类时,您可以传递它。您是否在incomingData中获取数据?是的。我从数据库中获取数据。到目前为止还不错..你想访问这个类本身的incomingData吗?如果是这样的话,那么你可以为它创建属性并通过类访问它。我希望能够传递数据,以便其他类可以访问数据。不要在类本身中使用它。您也可以使用this的属性来执行此操作,如果未从类中返回,您可以将其发送到任何地方。但是如何从异步完成处理程序中返回传入数据?当我从另一个方法/类调用它时,它会变为null,因为asyncrounus仍然在后台工作。希望您理解我的问题。我不是说要返回任何内容,您只是将数据设置为属性,现在您可以在任何地方传递它而不返回,您是否尝试过实现此功能?