-1

基本上,我在 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];

        }


    }





}
4

1 回答 1

0

NSString 和 CFString 支持免费桥接,这意味着它们可以互换使用。但是当几年前自动引用计数出现时,事情进行了一些调整。ARC 不管理 Core Foundation 对象,因为它们是 C,而不是 Objective-C。所以你必须确定你想要的所有权语义是什么。您可能可以摆脱作为 __bridge 的角色。

有关更多信息,请阅读此内容 - https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFDesignConcepts/Articles/tollFreeBridgedTypes.html#//apple_ref/doc/uid/TP40010677

于 2014-04-19T22:07:18.993 回答