代码之家  ›  专栏  ›  技术社区  ›  Josh Bradley

创建仅包含给定类对象的数组

  •  1
  • Josh Bradley  · 技术社区  · 17 年前

    好的,我有下面的代码(Objective-C仅供参考),我想知道我是否想创建一个NSMutableArray c_data 对象,我该怎么做?这有点像宣布一个 List<c_data> cData

    @interface c_data : NSObject {
        double value;
        int label;
        int ID;
    }    
    @property double value;
    @property int label;
    @property int ID;
    
    -(c_data*) init;
    -(c_data*) initWithValue:(double)value;    
    @end
    
    @implementation c_data
    @synthesize value, label, ID;
    -(c_data*) init {
        return self;
    }
    -(c_data*) initWithValue:(double)val {
        value = val;
        return self;
    }
    @end
    

    如果你看看课堂 feat_data ,我正在努力 cData 类的数组 c_data 我已经尝试过了,但我认为这是不对的,因为 c_data 不是数组。有什么建议吗?

    @interface feat_data : NSObject {
        NSMutableArray *nData;
        NSMutableArray *cData;
        char type;
    }
    @property(nonatomic, retain) NSMutableArray *nData;
    @property(nonatomic, retain) NSMutableArray *cData;
    @property char type;
    -(feat_data*)init;
    @end
    
    @implementation feat_data
    @synthesize nData, cData, type;
    -(feat_data*)init {
        nData = [[NSMutableArray alloc] init];
        c_data *c_dataInstance = [[c_data alloc] init];
        cData = [[NSMutableArray alloc] initWithArray:c_dataInstance];
        return self;
    }
    @end
    
    3 回复  |  直到 17 年前
        1
  •  3
  •   Community Mohan Dere    9 年前

    Objective-C中没有静态类型/模板/泛型集合。基本上,强类型集合的目的是在编译时提供静态类型安全。这种方法在像Objective-C这样动态的语言中没有什么意义。解决Objective-C集合中不同对象类型问题的方法是 仅插入适当的对象类型

    id -isKindOfClass: 和 -respondsToSelector:

    Allocating and Initializing Objects

        2
  •  2
  •   Chuck    17 年前
    [NSMutableArray addObject:[[[c_data alloc] init] autorelease]];
    

    Objective-C数组没有类型。看来你有一些C++的学习要做。

    另一方面,你的init相当糟糕。你也需要调用super-init,如下所示:

    - (id)init {
      self = [super init];
      if (self != nil) {
        //Initialize here.
      }
      return self;
    }
    
        3
  •  2
  •   Williham Totland    17 年前

    您将创建一个NSMutableArray并插入 c_data 物体进入其中。