阻止来自聊天室的不当内容

时间:2014-04-19 22:01:43

标签: objective-c chatroom cfstring

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

        }


    }





}

1 个答案:

答案 0 :(得分: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