如何从ASIHTTPRequest解析多行响应并将数据加载到UITableView?

时间:2013-03-02 20:04:25

标签: ios uitableview asihttprequest

我正在尝试在iOS应用程序中构建一个简单的聊天模块。现在,应用程序可以发送消息,消息由PHP文件处理并保存到数据库中。

当尝试从数据库中检索要显示的消息时,服务器会以下列格式返回最近10条消息的响应

msgid|userid|timestamp|message

请注意,这些值由|分隔字符。

所以我服务器的样本响应如下

12|123|2013-03-02 09:15:16|Hey. How are you?
13|12|2013-03-02 09:17:31|Hey Matt. I'm good!
14|123|2013-03-02 09:18:02|That's great!

我需要将此响应加载到TableViewCells中,但我不确定如何解析响应并在本地保存数据。

我是iOS开发的新手,我很感激帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果每条消息后面都有换行符,则可以使用NSString方法:

- (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator

所以:

NSArray *tableViewCellDataArray = [responseString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];

如果您的回复采用NSData格式,则可以使用以下命令获取NSString:

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

至于存储数据,您可以将其存储在NSArray属性中,或者如果您想要持久存储,请调查Core Data或NSUserDefaults。