目标C中的数组(iPhone)
我想问一下目标C中的NSArray 我想创建一个动态数组,因为我不知道数组的大小。我还想向数组中插入一些数据。但是,我不知道如何decl、init和将元素插入到数组中目标C中的数组(iPhone),iphone,objective-c,arrays,nsstring,nsarray,Iphone,Objective C,Arrays,Nsstring,Nsarray,我想问一下目标C中的NSArray 我想创建一个动态数组,因为我不知道数组的大小。我还想向数组中插入一些数据。但是,我不知道如何decl、init和将元素插入到数组中 下面是C++版本。 我想创建一个空数组a,并将数组B中的所有数组元素放到a中 // empty array string arrA[] = new string(); // put the arrB into arrA for(int i=0; i < arrB.length(); i++) arrA[i
下面是C++版本。 我想创建一个空数组a,并将数组B中的所有数组元素放到a中
// empty array
string arrA[] = new string();
// put the arrB into arrA
for(int i=0; i < arrB.length(); i++)
arrA[i] = arrB[i];
非常感谢。使用NSMutableArray。如果arrB是NSArray:
以下是文档:使用NSMutableArray。如果arrB是NSArray:
以下是文档:您应该使用名为NSArray或NSMutableArray的类。它们类似于std::vector,但由于Objective-C的工作方式,它们的使用有所不同
// Immutable array (must be created with contents specified)
NSArray *strings = [NSArray arrayWithObjects:@"Hello", @", world!", nil];
// Mutable array (can be modified)
NSMutableArray *strings = [NSMutableArray array];
[strings addObject:@"Hello"];
[strings addObject:@", world!"];
与Objective-C NSArray对象的区别在于,只要对象是NSObject的子类,它们就可以接受任何类型的对象
要访问值,必须使用objectAtIndex:消息
您应该使用名为NSArray或NSMutableArray的类。它们类似于std::vector,但由于Objective-C的工作方式,它们的使用有所不同
// Immutable array (must be created with contents specified)
NSArray *strings = [NSArray arrayWithObjects:@"Hello", @", world!", nil];
// Mutable array (can be modified)
NSMutableArray *strings = [NSMutableArray array];
[strings addObject:@"Hello"];
[strings addObject:@", world!"];
与Objective-C NSArray对象的区别在于,只要对象是NSObject的子类,它们就可以接受任何类型的对象
要访问值,必须使用objectAtIndex:消息
我不是要反驳你的答案,只是想指出:你也可以只写NSArray*arrA=[arrB copy]。@Chuck:这个问题是关于动态数组的,而[arrB copy]将生成另一个非动态的NSArray。我不确定动态在这里意味着什么,这会导致你提出抗议。Objective-C中的所有对象都会动态解析消息并进行动态类型化。如果它只是表示可变,那么它就是NSMUTABLEARRY*arrA=[arrB mutableCopy]。我想在声明数组时指定未知大小的数组。顺便问一下,我想问一下,目标C中的“可变”和“动态”有什么不同。非常感谢。我不想反驳你的答案,但只是想指出:你也可以只写NSArray*arrA=[arrB copy]。@Chuck:这个问题要求使用动态数组,而[arrB copy]将生成另一个非动态的NSArray。我不确定动态在这里意味着什么,这会导致你提出抗议。Objective-C中的所有对象都会动态解析消息并进行动态类型化。如果它只是表示可变,那么它就是NSMUTABLEARRY*arrA=[arrB mutableCopy]。我想在声明数组时指定未知大小的数组。顺便问一下,我想问一下,目标C中的“可变”和“动态”有什么不同。非常感谢你。
NSArray *array = [NSArray arrayWithObjects:@"A string", [NSNumber numberWithInt:1337], [NSDictionary dictionary]];
NSString *aString = [array objectAtIndex:10];
NSLog(aString);