dre*_*lax 157
您可以使用普通的旧C数组:
NSInteger myIntegers[40];
for (NSInteger i = 0; i < 40; i++)
myIntegers[i] = i;
// to get one of them
NSLog (@"The 4th integer is: %d", myIntegers[3]);
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用NSArray或NSMutableArray,但是在这里您需要将NSNumber实例中的每个整数包装起来(因为NSArray对象被设计为包含类实例).
NSMutableArray *myIntegers = [NSMutableArray array];
for (NSInteger i = 0; i < 40; i++)
[myIntegers addObject:[NSNumber numberWithInteger:i]];
// to get one of them
NSLog (@"The 4th integer is: %@", [myIntegers objectAtIndex:3]);
// or
NSLog (@"The 4th integer is: %d", [[myIntegers objectAtIndex:3] integerValue]);
Run Code Online (Sandbox Code Playgroud)
Fré*_*dda 54
C数组:
NSInteger array[6] = {1, 2, 3, 4, 5, 6};
Run Code Online (Sandbox Code Playgroud)
Objective-C数组:
NSArray *array = @[@1, @2, @3, @4, @5, @6];
// numeric values must in that case be wrapped into NSNumbers
Run Code Online (Sandbox Code Playgroud)
Swift数组:
var array = [1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
这也是正确的:
var array = Array(1...10)
Run Code Online (Sandbox Code Playgroud)
注意:数组在Swift中是强类型的; 在这种情况下,编译器从内容中推断出数组是整数数组.您也可以使用此显式类型语法:
var array: [Int] = [1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
如果你想要一个双打数组,你会使用:
var array = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] // implicit type-inference
Run Code Online (Sandbox Code Playgroud)
要么:
var array: [Double] = [1, 2, 3, 4, 5, 6] // explicit type
Run Code Online (Sandbox Code Playgroud)
如果你想使用NSArray,你需要一个Objective-C类来加入它 - 因此需要NSNumber.
也就是说,Obj-C仍然是C,因此如果需要,你可以使用常规的C数组并保持常规的int而不是NSNumbers.
您可以使用CFArray代替 NSArray。这是一篇解释如何操作的文章。
CFMutableArrayRef ar = CFArrayCreateMutable(NULL, 0, NULL);
for (NSUInteger i = 0; i < 1000; i++)
{
CFArrayAppendValue(ar, (void*)i);
}
CFRelease(ar); /* Releasing the array */
Run Code Online (Sandbox Code Playgroud)
这同样适用于其他容器的 CoreFoundation 版本。
| 归档时间: |
|
| 查看次数: |
146189 次 |
| 最近记录: |