2013-08-02 55 views
0

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

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

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

回答

4

componentsSeparatedByString:文档表示:

返回值

含有从已经由隔板划分所述接收机的子串的NSArray对象。

所以你的fileContents包含一个NSStrings的数组。 fileContents[0]然后是阵列中的第一个NSString实例。你可以通过调用

[string intValue]; 
[string integerValue]; 

所以,你的代码应该是这样的转换NSStringint或最好NSInteger(假设数组包含至少1对象,不要忘记检查这一点):

int object1 = [fileContents[0] intValue]; 

或者更好的包括类型转换以获得更好的代码可读性

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

您应该使用intValue转换为int

int object1 = [fileContents[0] intValue];