iPhone ASIHTTPRequest 从 requestFinished 方法中异步提取响应
Posted
技术标签:
【中文标题】iPhone ASIHTTPRequest 从 requestFinished 方法中异步提取响应【英文标题】:iPhone ASIHTTPRequest Asyncroneous Extracting Response from the requestFinished Method 【发布时间】:2011-03-24 12:55:01 【问题描述】:我有一个响应,我从服务器返回一个需要设置的字符串,以便我可以在我的 viewdidload 方法中使用它....
我需要解析响应,然后在表格视图中显示......
下面是获取响应的方法。
- (void)requestFinished:(ASIHTTPRequest *)request
// Use when fetching text data
NSString *responseString = [request responseString];
我需要在我的 viewdidload 方法中使用存储在“responseString”中的数据,以便解析响应并将其加载到表视图中。
【问题讨论】:
为什么不将解析器移动到“viewDidLoad”方法之外的其他方法并使用 performSelector:onMainThread / dispatch_async 调用它? 【参考方案1】:您的 viewDidLoad 中不需要它。如您所见,它回来得太晚了。
您需要的是在您返回数据后触发您的 UITableView 重新加载。
- (void)requestFinished:(ASIHTTPRequest *)request
// Use when fetching text data
NSString *responseString = [request responseString];
// do something to turn responseString into the data you'll use to
// populate your table with data, and then:
[myTable reloadData];
所以表格会空出来,一旦你有数据要显示就会重新加载。
【讨论】:
然后我需要在哪里执行我的请求才能使其按顺序加载到表中...?谢谢 万一......你不知道如何在数据加载数据时设置默认值表格单元格......因为当你第一次加载表格时表格是空的......跨度> 您想保留一个代表表数据的NSMutableArray
,可能是命名为@property。然后在-numberOfRowsInSection
中,您想要返回该数组的计数。首次加载时,您将初始化该数组,它将有 0 行,numberOfRows
将返回 0,这将使表格成为空白。然后,当您重新加载数据时,numberOfRows
会说出数组中的行数,然后它会完成所有其余的建表业务。
是的,我以为是这样,但实际上在我的设计实现中实现它有点不同......我必须向你展示我的整个类文件让你理解......
好吧,我告诉你它的规范方式。偏离这一点,后果自负,你知道吗?以上是关于iPhone ASIHTTPRequest 从 requestFinished 方法中异步提取响应的主要内容,如果未能解决你的问题,请参考以下文章
使用 Asihttprequest 和 iPhone 的 Json 框架解析 JSON 数据
ASIHTTPRequest setPostValue iPhone