n.e*_*ind 5 iphone cocoa-touch objective-c
这一定是非常基本的,但我想知道如何在数组中添加整数?
我知道我可以添加这样的字符串:
NSMutableArray *trArray = [[NSMutableArray alloc] init];
[trArray addObject:@"0"];
[trArray addObject:@"1"];
[trArray addObject:@"2"];
[trArray addObject:@"3"];
Run Code Online (Sandbox Code Playgroud)
但我想我不能简单地添加这样的整数:
NSMutableArray *trArray = [[NSMutableArray alloc] init];
[trArray addObject:0];
[trArray addObject:1];
[trArray addObject:2];
[trArray addObject:3];
Run Code Online (Sandbox Code Playgroud)
至少编译器对此并不满意,并且告诉我,我正在进行演员而没有告诉它.
任何解释都将非常感谢.
San*_*ier 27
恩,那就对了.编译器不会接受这样的代码.区别在于:
如果你写@"a String"
,它就像你创建一个字符串并自动释放它一样.因此,您可以使用创建对象@"a String"
.
但是数组只能存储对象(更精确:指向对象的指针).所以你必须创建存储整数的对象.
NSNumber *anumber = [NSNumber numberWithInteger:4];
[yourArray addObject:anumber];
Run Code Online (Sandbox Code Playgroud)
要再次检索整数,请执行此操作
NSNumber anumber = [yourArray objectAtIndex:6];
int yourInteger = [anumber intValue];
Run Code Online (Sandbox Code Playgroud)
我希望我的回答可以帮助你理解为什么它不起作用.您不能将整数强制转换为指针.这就是你从Xcode得到的警告.
编辑:
现在也可以编写以下内容
[yourArray addObject:@3];
Run Code Online (Sandbox Code Playgroud)
这是创建NSNumber的快捷方式.数组可以使用相同的语法
@[@1, @2];
Run Code Online (Sandbox Code Playgroud)
将为您提供一个NSArray,其中包含2个值为1和2的NSNumber对象.
您必须使用NSNumbers,尝试将这些对象添加到您的数组中:[NSNumber numberWithInteger:myInt];
NSMutableArray *trArray = [[NSMutableArray alloc] init];
NSNumber *yourNumber = [[NSNumber alloc] numberWithInt:5];
[trArray addObject: yourNumber];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21427 次 |
最近记录: |