我正在遍历一个名为 previouslyDefinedNSString
的 NSString 对象,并验证代表字母 ASCII 值的整数是否在一个名为 mySetOfLettersASCIIValues
的 NSMutableSet 中,我之前已填充该对象使用 NSIntegers:
NSInteger ASCIIValueOfLetter;
for (int i; i < [previouslyDefinedNSString length]; i++) {
ASCIIValueOfLetter = [previouslyDefinedNSString characterAtIndex:i];
// if character ASCII value is in set, perform some more actions...
if ([mySetOfLettersASCIIValues member: ASCIIValueOfLetter])
但是,我在 IF 语句的条件下收到此错误。
Incompatible integer to pointer conversion sending 'NSInteger' (aka 'int') to parameter of type 'id';
Implicit conversion of 'NSInteger' (aka 'int') to 'id' is disallowed with ARC
这些错误是什么意思?我如何转换为对象类型(哪个 id 代表,对吗?)? NSInteger 不是对象吗?
最佳答案
你想让它成为一个 NSNumber,如:
NSInteger ASCIIValueOfLetter;
for (int i; i < [previouslyDefinedNSString length]; i++) {
ASCIIValueOfLetter = [previouslyDefinedNSString characterAtIndex:i];
// if character ASCII value is in set, perform some more actions...
if ([mySetOfLettersASCIIValues member: [NSNumber numberWithInteger: ASCIIValueOfLetter]])
现在您将获得所需的结果。
关于objective-c - 为什么我在 objective-c 中得到一个整数到指针的转换错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9961626/