Question

I can't seem to get a UITextView to display a string, in this case the combined variable.

Here is my code:

- (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];
    }
}

Any ideas of what could be wrong?

Was it helpful?

Solution

The problem is with chatWindow - either:

  • It is nil
  • It is not bound to a UITextView (as its 'window' name implies)
  • It is not visible (location is outside of the window or hidden is YES)

Check those.

A simple test would be to replace the entire computation that you've listed with:

chatWindow.text = @"Sample chat text";

When that fails look in detail at chatWindow (in the debugger or with NSLog (@"Window: %@", chatWindow))

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top