我有两个 UILabel,信息和接收。接收应该告诉我我实际上正在接收数据。但是,当它确实表明......我的信息 UILabel 没有相应地更新。它有时有效,有时无效..
那是怎么回事?
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
[super viewDidLoad];
receiving = [[UILabel alloc] initWithFrame: CGRectMake(30,50,255,100)];
info = [[UILabel alloc] initWithFrame: CGRectMake(30,200,255,100)];
info.backgroundColor = [UIColor orangeColor];
receiving.backgroundColor = [UIColor orangeColor];
// [self.view addSubview: toggleSwitch];
receiving.text = @"Not Receiving...";
[self.view addSubview: info];
[self.view addSubview: receiving];
}
return self;
}
- (void) startCommThread:(id)object
{
// NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// initialize RscMgr on this thread
// so it schedules delegate callbacks for this thread
rcsMgr = [[RscMgr alloc] init];
[rcsMgr setDelegate:self];
// run the run loop
[[NSRunLoop currentRunLoop] run];
// [pool release];
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Create and start the comm thread. We'll use this thread to manage the rscMgr so
// we don't tie up the UI thread.
if (commThread == nil)
{
commThread = [[NSThread alloc] initWithTarget:self
selector:@selector(startCommThread:)
object:nil];
[commThread start]; // Actually create the thread
}
}
- (void) readBytesAvailable:(UInt32)numBytes {
receiving.text = @"Receiving...";
NSString* str = [rcsMgr getStringFromBytesAvailable];
if ( str ) receiving.text = @"I GOT SOMETHING!";
// if ( numBytes ) receiving.text = numBytes;
else receiving.text = @"Still Receiving...";
info.text = str;
}