Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
目标C中的数组(iPhone)_Iphone_Objective C_Arrays_Nsstring_Nsarray - Fatal编程技术网

目标C中的数组(iPhone)

目标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中的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] = 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);