ObjC在字符串中搜索@(iOS@转义码)
我正在用电子邮件搜索NSString以查找@字符。代码如下:ObjC在字符串中搜索@(iOS@转义码),ios,objective-c,nsstring,Ios,Objective C,Nsstring,我正在用电子邮件搜索NSString以查找@字符。代码如下: NSRange range = [string rangeOfString:@"@"]; if (range.location != NSNotFound) // do stuff 这是我得到的错误 -[__NSCFNumber rangeOfString:]: unrecognized selector sent to instance 0x1e51c550 *** Terminating app due to uncaught
NSRange range = [string rangeOfString:@"@"];
if (range.location != NSNotFound) // do stuff
这是我得到的错误
-[__NSCFNumber rangeOfString:]: unrecognized selector sent to instance 0x1e51c550
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber rangeOfString:]: unrecognized selector sent to instance 0x1e51c550'
您的
string
变量指向NSNumber
的实例,而不是NSString
的实例。您的字符串变量指向的是NSNumber
的实例,而不是NSString
的实例。您的初始化不正确。能否告诉我们您是如何初始化消息“[string rangeOfString:@”@”]”的变量“string”的?您的“string”不是NSString,而是NSNumber。(如果您搜索“unrecognized selector sent to instance”,您会发现这至少解释了一千次。)您能告诉我们您是如何初始化消息“[string rangeOfString:@“@”]”的变量“string”的吗?您的“string”不是一个NSString,而是一个NSNumber。(如果您搜索了“unrecognized selector sent to instance”,您会发现这至少解释了一千次。)谢谢rob,您是对的。我将NSNumbers和NSStrings存储在一个数组中,尝试使用一个简单的for-in循环,而不检查isKindOfClass或respondsToSelector。失败,谢谢,罗布,你说得对。我将NSNumbers和NSStrings存储在一个数组中,尝试使用一个简单的for-in循环,而不检查isKindOfClass或respondsToSelector。失败。