gpt4 book ai didi

ios - 将 block 中异步接收的 JSON 对象传递给实例变量 - 在 iOS6 上使用 AFNetworking

转载 作者:行者123 更新时间:2023-11-29 13:20:21 24 4
gpt4 key购买 nike

此代码包含 JSON,但无论我做什么,我都无法弄清楚如何将此 JSON 传递给实例变量。每次我将它设置为一个变量并在该方法之外调用该变量时它为 nil。所以我可以收集到的是,在以下异步调用返回之前调用了该变量。

所以问题是我可以对下面的代码做些什么,以便我可以提取 JSON 值。在互联网上的某个地方,我读到我需要向它传递一个 block ,该 block 将作为完成时的回调服务器,但我不知道如何为以下代码执行此操作

 //Gets the JSON object that contains the entries from the server
-(void)getEntriesFromServer
{
NSLog(@"%s", __PRETTY_FUNCTION__);

[[appAPIClient sharedClient] getPath:@"/entries"
parameters:nil
success:^(AFHTTPRequestOperation *operation, id JSON)
{
NSLog(@" JSON array = %@",[JSON valueForKeyPath:@"entries"]);
}failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
NSLog(@" Json not received");
}];
}

谢谢

最佳答案

尝试将 __block 添加到数组的定义中,例如 __block NSArray* entriesArray;或制作类似

的属性
@property (nonatomic, retain) NSArray* entriesArray;

然后像这样更改你的代码

[[appAPIClient sharedClient] getPath:@"/entries"
parameters:nil
success:^(AFHTTPRequestOperation *operation, id JSON)
{

//NSLog(@" Json value received is : %@ ",[JSON description]);
//NSLog(@" JSON array = %@",[JSON valueForKeyPath:@"entries"]);

self.entriesArray = [NSArray arrayWithArray:[JSON valueForKeyPath:@"entries"]];
NSLog(@" JSON array from inside block = %@", _entriesArray);
}failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
NSLog(@" Json not received");
}];

希望对你有帮助

关于ios - 将 block 中异步接收的 JSON 对象传递给实例变量 - 在 iOS6 上使用 AFNetworking,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14515719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com