【问题标题】:An Array with multiple entries per index (an array of arrays?)每个索引具有多个条目的数组(数组数组?)
【发布时间】:2017-11-02 08:57:34
【问题描述】:

我可以创建一个每行包含多条数据的数组吗?

几乎像一个 excel 电子表格,而不是有

NSArray *sampleArray1 = @[@"Name1",@"Name2",@"Name3"];
NSArray *sampleArray2 = @[@"Age1",@"Age2",@"Age3"];

并且必须将每个数组的 [indexPath row] 返回到您的表格视图单元格中,您可以改为:

NSArray *superArray = @[@"Name1"|@"Age1", @"Name2"|@"Age2",@"Name3"|@""];

这将立即返回所选索引的所有信息。

我很熟悉如何在 Swift 中做到这一点。我通常会创建一个struct 并给它一些数组变量。

struct superArray {
    var names = [String]()
    var ages = [String]()
}

我可以简单地做cell.myLabel = superArray.names.indexPath[row]

当我设置我的表格视图时,我需要返回表格应该显示的行数。目前在我的 Objc 项目中,我刚刚实现了虚拟数组,所有数组的大小都相同,我只返回其中一个。这在我看来很糟糕,因为我可以检索参数不完整的数据集(可能是年龄但不是名称),然后我的表将在我的数组中看到错误数量的信息并且无法正确显示。

【问题讨论】:

  • 为什么不直接创建一个有名字和年龄的用户对象呢?然后只用 1 个数组来存储它们,你认为你应该了解更多关于 OOP 的知识吗?

标签: ios objective-c arrays cocoa-touch


【解决方案1】:

正如 cmets 中提到的,这是一个非常基本的问题需要解决。您希望将对象存储在包含这些元素的数组中,例如

@interface User: NSObject

@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) NSInteger age;

@end

NSArray<User *> *users = @[...];

看来您可能需要了解更多有关 Objective-C 的知识。 SO 更多的是帮助您解决特定/复杂的问题,但我希望我至少能让您走上正轨。

【讨论】:

  • 知道了,数组可以包含任何对象,这让我有点不知所措。我只是在考虑整数和字符串等。我已经将它实现到我想要的项目中,并且一切正常!欢呼
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 2019-09-04
  • 2021-04-10
相关资源
最近更新 更多