00001 00008 #import <Foundation/Foundation.h> 00009 #import "Workshop1.h" 00010 00011 @implementation Workshop1 00012 @synthesize quit; 00013 00020 - (id)initWithFileHandle:(NSFileHandle*)fh { 00021 if((self = [super init])) { 00022 [[NSNotificationCenter defaultCenter] addObserver:self 00023 selector:@selector(read:) 00024 name:NSFileHandleReadCompletionNotification 00025 object:fh]; 00026 [fh readInBackgroundAndNotify]; 00027 quit = NO; 00028 } 00029 return self; 00030 } 00031 00039 - (void)read:(NSNotification*)notification { 00040 NSData *data = [[notification userInfo] objectForKey:NSFileHandleNotificationDataItem]; 00041 00042 if([data length] == 0) 00043 quit = YES; 00044 else { 00045 NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 00046 NSLog(@"%@", str); 00047 NSLog(@"%@", data); 00048 00049 if([str isEqualToString:@"quit\n"]) 00050 quit = YES; 00051 00052 [str release]; 00053 00054 [[notification object] readInBackgroundAndNotify]; 00055 } 00056 } 00057 00058 @end