如何将NSMutableArray存储到NSUserDefaults并在TableView中显示结果?

时间:2012-01-11 15:44:43

标签: objective-c uitableview nsmutablearray

我想在我的应用程序中保存来自服务器的通知,并创建一个用户界面,让用户可以选择要读取的通知(消息)。在调度方法中,我的客户端控制服务器内部的更改,并且通信采用JSON格式。我已经解析了它,也可以在NSLog(@"....",..)中看到结果。我还控制来自服务器的消息状态,如果状态等于1,我将保存消息并向TableView添加一个节点。现在,任何人都可以帮助我如何将NSMutableArray中的数据传输到{ {1}}和TableView?如果你想要我也可以共享代码或JSON表示。 如果你能解释一些代码会更好..谢谢

我决定分享一些代码,

因为我也在代码下写了,我想在NSUserDefaults

中显示NSMutableArray
UITableView

`

1 个答案:

答案 0 :(得分:2)

将其保存在NSUserDefaults中:

[[NSUserDefaults standardUserDefaults]setObject:yourArray forKey:@"theArray"];

从NSUserDefaults获取它:

[[NSUserDefaults standardUserDefaults]objectForKey:@"theArray"];

将数组中的值设置为UITableViewCell:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"TheCell";
    UITableViewCell *_cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (_cell == nil) {
        _cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    _cell.textLabel.text = [yourArray objectAtIndex:indexPath.row];
    return _cell;
}

希望有所帮助

<强>更新

目前附近没有Mac,所以我的回答可能有点草率。

在你的头文件中不要忘记添加UITableViewDelegate和UITableViewDataSource,所以它看起来有点像:

@interface yourController : UIViewController <UITableViewDelegate, UITableViewDataSource, ... some others if you need it ...> {

然后在实现文件(.m)中,您可以开始输入

-tableview

然后使用自动完成功能来获取所需的方法。你很可能需要这3个:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

- (void)tableView: (UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath

根据您的应用需求,您可能需要更多,但这3个应该在那里。

有关UITableView的更多信息,请检查该链接:http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html