我有一个数组,它的内容是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' */
答案 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];