【问题标题】:best way/ any way to indicate typed NSMutableArray指示类型化 NSMutableArray 的最佳方式/任何方式
【发布时间】:2011-11-24 08:05:07
【问题描述】:

我正在将一个应用程序从 Android Java 移植到 iPhone。

在 Android 中,我经常使用 Lists/ArrayLists。

我打算在 iPhone 上使用 NSMutableArray。

有没有办法在 NSMutableArray 中定义甚至指示对象的类型。

我知道可以将任何类型的对象放在那里,但我想让它更显眼和透明。

非常感谢

【问题讨论】:

    标签: android iphone list arraylist nsmutablearray


    【解决方案1】:

    不清楚你在问什么。

    如果你只是想让读者清楚地知道数组中有哪些类型的对象,只需适当地命名它(你不能在语言级别强制它):

    NSMutableArray *arrayOfMyClasses;

    另一方面,如果您想找出从数组中读回的对象的类型,那么您可以使用以下方法获取底层类:

    [obj class]
    

    或轻松与其他类类型进行比较:

    if ([obj isKindOfClass:[MyClass class]) { ... }
    

    提姆

    【讨论】:

    • 是的,这就是我所要求的——命名也是我找到的唯一解决方案。感谢您的确认!
    【解决方案2】:

    我假设您正在寻找 Objective C 中的模板模式。不幸的是,它在 Objective C 中不可用(至少直接)。

    您可能会发现 StackOverflow.com 的 this 问题很有趣

    【讨论】:

      【解决方案3】:

      你只能指明一个类型。

      for(id obj in _assets) {
          NSString *className = NSStringFromClass([obj class]);
          NSLog(@"%@", className);
      }
      

      数组是任何类型对象的有序集合。例如, 图 1 中的数组包含的对象可以是 cat 和 dog 对象,如果数组是可变的,您可以添加更多 dog 对象。集合不必是同质的。

      Collections Programming Topics - Arrays: Ordered Collections

      【讨论】:

        猜你喜欢
        • 2019-05-27
        • 1970-01-01
        • 1970-01-01
        • 2022-09-23
        • 1970-01-01
        • 2012-10-02
        • 1970-01-01
        • 1970-01-01
        • 2013-06-11
        相关资源
        最近更新 更多