• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iphone - UITableview 和数据源作为 NSMutableArray

[复制链接]
菜鸟教程小白 发表于 2022-12-13 11:43:09 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我是 iOS 开发新手,我学习了一个简单的 UITableview 和详细 View 的教程。

这设置了我的数组:

- (void)viewDidLoad
{
    [self setupArray];
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)setupArray
{
    states = [[NSMutableDictionary alloc]init];
    [states setObject"Thing 1" forKey"Subject 1"];
    [states setObject"Thing 2" forKey"Subject 2"];
    [states setObject"Thing 3" forKey"Subject 3"];
    [states setObject"Thing 4" forKey"Subject 4"];

    datasource = [states allKeys];
}

我有工作单元和详细 View 。如何向我的键添加更多对象?那可能吗?我需要每个主题 [key] 具有许多属性(即事物、人、地点、颜色)...

你能把它分解成对我来说最简单的术语吗?谢谢!



Best Answer-推荐答案


我不确定我是否理解您的问题,但每个键只能有一个与之关联的对象。在您的情况下,您使用的是 NSString 对象。如果您将 NSString 替换为您创建的某个对象,例如 AnObjectWithAThingAndAPersonAndAPlace,您可以有多个与每个键关联的属性。


我想我现在明白你想要什么了。你想要的不是一个带有与之关联的数组的对象,而是一个对象数组。你可以用 NSDictionary 对象来做到这一点。

- (void)setupArray
{
    NSMutableArray *objectArray = [[NSMutableArray alloc] init];

    NSMutableDictionary *object1 = [[NSMutableDictionary alloc] init];
    [object1 setObject"Apple" forKey"thing"];
    [object1 setObject:@"Alex" forKey:@"person"];
    [object1 setObject:@"Alabama" forKey:@"place"];
    [object1 setObject:@"Azure" forKey:@"color"];
    [objectArray addObjectbject1];

    NSMutableDictionary *object2 = [[NSMutableDictionary alloc] init];
    [object2 setObject:@"Banana" forKey:@"thing"];
    [object2 setObject:@"Bill" forKey:@"person"];
    [object2 setObject:@"Boston" forKey:@"place"];
    [object2 setObject:@"Blue" forKey:@"color"];
    [objectArray addObjectbject2];

    datasource = [NSArray arrayWithArraybjectArray];
}

然后在你的 UITableViewDataSource 方法中

- (UITableViewCell *)tableViewUITableView *)tableView cellForRowAtIndexPathNSIndexPath *)indexPath
{
    NSInteger row = [indexPath row];        
    NSDictionary *object = [datasouce objectAtIndex:row];

    ...

}

您可以检索该对象的所有字符串。

如果我要做这样的事情,我可能会创建一个包含数组的 plist 文件。那么你的 setupArray 方法可能如下所示:

- (void)setupArray
{
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"YourFileName" ofType:@"plist"];
    NSDictionary *plistData = [NSDictionary dictionaryWithContentsOfFile:filePath]; 
    datasource = (NSArray*)[plistData objectForKey:@"ObjectsForTableView"];
}

虽然我会添加更多评论...如果不是很明显,您添加到字典中的对象不必是 NSString,它们可以是任何对象,例如 NSNumber,对于您的棒球运动员,可能对您有用。此外,您可能希望创建自定义播放器对象而不是使用 NSDictionary。而且您可能希望拥有一个存储和检索播放器的核心数据数据库(而不是硬编码它们或从 plist 文件中获取它们)。不过,我希望我的回答能让你走上正确的道路。

关于iphone - UITableview 和数据源作为 NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9343496/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap