如何在iOS类中存储此对象?

时间:2013-07-19 14:27:36

标签: ios uitableview nsmutablearray nsarray nsdictionary

我正在为iOS创建我的第一个Master-Detail应用程序。

我想存储以下内容

  1. 名称
  2. 网址
  3. 在我的UITableView中,我计划只显示名称(已排序),但是当点击名称时,另一个视图将加载一个按钮,该按钮将使用WebURL启动Safari

    我尝试使用MSMutableArray,但发现它不可排序。 NSDictionary也是如此。

    任何想法(或样本或样本链接)都将受到赞赏

    我正在尝试使用iOS 7.0中未弃用的方法 并计划支持iOS 6

    早期版本是+,但我可以不支持3,4,5。

2 个答案:

答案 0 :(得分:1)

每个项目都带有NSDictionary的NSMutableArray非常好。你可以对它进行排序。

NSMutableArray *rows = @[].mutableCopy;
[rows addObject:@{@"name": @"Bob", @"url": [NSURL URLWithString:@"http://bob.com"]}];
[rows addObject:@{@"name": @"Alice", @"url": [NSURL URLWithString:@"http://alice.net"]}];
NSLog(@"%@", rows);

[rows sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
  return [[obj1 valueForKey:@"name"] compare:[obj2 valueForKey:@"name"] options:NSNumericSearch];
}];
NSLog(@"%@", rows);

输出:

2013-07-20 00:33:31.682 MyApp[28496:303] (
        {
        name = Bob;
        url = "http://bob.com";
    },
        {
        name = Alice;
        url = "http://alice.net";
    }
)
2013-07-20 00:33:31.682 MyApp[28496:303] (
        {
        name = Alice;
        url = "http://alice.net";
    },
        {
        name = Bob;
        url = "http://bob.com";
    }
)

答案 1 :(得分:0)

您可以对NSArrays进行排序,您只需自己编写比较函数,因为NSArrays存储对象,以及如何对包含可能包含数千个值的对象进行排序。这里有一篇好文章。这应该有希望完成工作。

How to sort an NSMutableArray with custom objects in it?