基本上,我在iphone应用程序中有一个聊天室,我想阻止它中不恰当的单词。我有一个叫做blackList的单词数组。但是,每当我运行下面的代码时,我都会收到错误" use of undeclared identifier 'foundRange'
"以及" incompatible pointer types passing NSString to parameter of type 'CFStringRef (aka 'const struct _ CFString
"的警告。问题是什么?请在答案中提供代码。这是我的代码:
- (void)displayChatMessage:(NSString*)message fromUser:(NSString*)userName {
int i=0;
for (i=0; i<[blackList count] ; i++){
NSString *one = [NSString stringWithFormat:@"%@",[blackList objectAtIndex:i]];
if (CFStringFindWithOptions(message,one , CFRangeMake(0,CFStringGetLength(message)), kCFCompareCaseInsensitive, &foundRange) == true) {
/*do nothing*/
}
else {
[chat appendTextAfterLinebreak:[NSString stringWithFormat:@"%@: %@", userName, message]];
[chat scrollToBottom:chat];
}
}
}
答案 0 :(得分:0)
NSString和CFString支持免费桥接,这意味着它们可以互换使用。但是,几年前出现自动参考计数时,事情进行了一些调整。 ARC不管理Core Foundation对象,因为它们是C,而不是Objective-C。因此,您必须确定所需的所有权语义。你可以放弃铸造为__bridge。