我有usuario
类型的变量TuplaUsuario
。当我插入数据时,我想将NSMutableArray cups
初始化为类型为Array
的{{1}}。我该怎么办?
这是我最新的代码:
TuplaUsuario:
TuplaCups
TuplaCups:
//TuplaUsuario.h:
@interface TuplaUsuario : NSObject
{
NSMutableString* mensaje;
NSString* usuario;
NSString* password;
NSMutableArray* cups;
//More variables
}
//Property for each variable
- (id)initWithString:(NSString *)identifier;
//TuplaUsuario.m:
//Synthesize for each variable
- (id)initWithString:(NSString *)identifier {
if ( self = [super init] ) {
mensaje = [[NSMutableString alloc] initWithString:identifier];
usuario = [[NSString alloc] initWithString:identifier];
password = [[NSString alloc] initWithString:identifier];
cups = [[NSMutableArray alloc] init];
}
return self;
}
答案 0 :(得分:1)
Objective-C中的数组(如在NSArray和NSMutableArray中)没有输入,它们可以保存任何对象类型,并且您无法轻易限制进入的内容。因此,您有责任确保只有您想要的类型的对象通常,这不是问题,除非你暴露可变数组,以便其他对象可能将东西放入你的数组。在这种情况下,最好提供访问者:
- (void)addFoo:(Foo *)foo {
[myMutableArray addObject:foo];
}
- (void)removeFoo:(Foo *)foo {
[myMutableArray removeObject:foo];
}
// Return an array of Foo instances.
- (NSArray *)foos {
return [[myMutableArray copy] autorelease];
}
答案 1 :(得分:1)
Objective-C没有像C#或C ++那样的泛型概念。毕竟没有模板。您只需要知道您放入数组的对象类型。如果要混用它们,可以使用isKindOfClass:
来测试该类。