에 나는이 경우, combined
변수를 문자열을 표시 할 UITextView
를 얻이 수없는 것 표시되지 않습니다. 잘못 될 수 있는지의문자열 UITextView
- (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];
}
}
어떤 아이디어 : 여기
내 코드?
chatWindow에서 자세히 볼 실패하면
:
간단한 테스트는 당신이 열거 한 모든 계산을 대체하는 것 그것은 추측하기가 매우 어렵습니다. 실행시'chatWindow'의 값은 무엇입니까? 이 스레드는 어떤 스레드에서 실행됩니까? (즉, 소켓 대기열을 기본 대기열 또는 아니요로 설정 했습니까?) 코드의 다른 부분에서 텍스트를 변경할 수 있습니까? 나는 코드의 다른 부분의 텍스트를 변경할 수 없습니다입니다 –
, 나는 심지어 레이블과 텍스트 뷰를 대체하기 위해 노력하고 난 아직이 작업을 가져올 수 없습니다 :/ –
소켓 위임 큐도 메인 큐로 설정되어 –