0

我似乎无法UITextView显示一个字符串,在这种情况下是combined变量。

这是我的代码:

- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag {
    NSData *pongReply = [@"PONG :hades.arpa\r\n" dataUsingEncoding:NSASCIIStringEncoding];
    NSData *strData = [data subdataWithRange:NSMakeRange(0, [data length])];
    NSString *msg = [[NSString alloc] initWithData:strData encoding:NSASCIIStringEncoding];
    [asyncSocket readDataWithTimeout:-1 tag:0];
    NSLog(@"%@", msg);

    //ping reply
    NSRange pingReply = [msg rangeOfString:@"PING :hades.arpa"];
    NSRange chanMsgs = [msg rangeOfString:@"PRIVMSG #"];
    if (pingReply.location != NSNotFound) {
        NSLog(@"we got pinged");
        [asyncSocket writeData:pongReply withTimeout:-1 tag:1];
    }

    //Channel control / msgs
    if (chanMsgs.location != NSNotFound) {
        NSLog(@"CHANNEL MESSAGE!");
        //code for getting text after (space):
        NSString *str = msg;
        NSString *search = @" :";
        //code for before !~
        NSString *str2 = msg;
        NSString *search2 = @"!";
        NSString *sub = [str substringFromIndex:NSMaxRange([str rangeOfString:search])];
        NSString *sub2 = [str2 substringToIndex:NSMaxRange([str2 rangeOfString:search2])];

        NSString *sub2out = [sub2 stringByReplacingOccurrencesOfString:@":" withString:@""];
        NSString *sub2out2 = [sub2out stringByReplacingOccurrencesOfString:@"!" withString:@""];
        NSString *combined = [NSString stringWithFormat:@"%@: %@", sub2out2, sub];
        NSLog(@"%@", combined);
        chatWindow.text = [chatWindow.text stringByAppendingString:combined];
        chatWindow.text = [NSString stringWithFormat: @"%@", combined];
    }
}

有什么想法可能是错的吗?

4

1 回答 1

0

问题在于chatWindow- 要么:

  • 这是nil
  • 它没有绑定到 UITextView(正如它的“窗口”名称所暗示的那样)
  • 不可见(位置在窗外或者hidden是)

检查那些。

一个简单的测试是替换您列出的整个计算:

chatWindow.text = @"Sample chat text";

如果失败,请详细查看 chatWindow(在调试器中或使用NSLog (@"Window: %@", chatWindow)

于 2013-07-15T02:26:42.963 回答