0

我有一个数组,它的内容是类型的对象id,但我需要把它们变成类型int。有什么办法可以让数组将数据读取为ints,或者将其id转换为 s int

    NSArray *array = [string componentsSeparatedByString:@"\n"];

    int foo = array[0];  /*Warning: Incompatible pointer to integer conversion initializing 'int' with an expression of type 'id' */
4

2 回答 2

4

componentsSeparatedByString:文档说:

返回值

一个NSArray对象,包含来自接收者的子字符串,这些子字符串已被分隔符分割。

所以你fileContents包含一个数组NSStringsfileContents[0]然后是 NSString数组中的第一个实例。您可以转换NSStringint或最好NSInteger通过调用

[string intValue];
[string integerValue];

所以你的代码应该是这样的(假设数组至少包含 1 个对象,不要忘记检查这个):

int object1 = [fileContents[0] intValue];

甚至更好地包括类型转换以获得更好的代码可读性

int object1 = [(NSString *)fileContents[0] intValue];
于 2013-08-02T13:11:29.660 回答
2

您应该使用intValue转换为int.

int object1 = [fileContents[0] intValue]; 
于 2013-08-02T13:10:04.387 回答