你如何将int转换为id?

时间:2013-08-02 12:56:42

标签: ios objective-c int nsarray type-conversion

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

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

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

2 个答案:

答案 0 :(得分:4)

componentsSeparatedByString:文档说:

  

返回值

     

包含来自接收器的子串的NSArray对象,已被分隔符分割。

因此,您的fileContents包含NSStrings数组。 fileContents[0]是数组中的第一个NSString实例。您可以通过调用

NSString转换为int或最好NSInteger
[string intValue];
[string integerValue];

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

int object1 = [fileContents[0] intValue];

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

int object1 = [(NSString *)fileContents[0] intValue];

答案 1 :(得分:2)

您应该使用intValue转换为int

int object1 = [fileContents[0] intValue];