title: Trouble using NSInputStream
body: <p>Total novice trying to program a basic iPhone app.  I wrote the code for a server and can send lines from my app to the server but I'm having trouble receiving lines from my server.</p>
  
  <p>Also this app seems to only work when I run through it using the debugger.</p>
  
  <p>Any help is appreciated.  Thanks.</p>
  
  <p>Here's my code:</p>
  
  <pre><code>    - (void)viewDidLoad
   {
       [super viewDidLoad];
       // Do any additional setup after loading the view, typically from a nib.
       manager = [[CLLocationManager alloc] init];
       manager.distanceFilter = kCLDistanceFilterNone;
       manager.desiredAccuracy = kCLLocationAccuracyBest;
       [manager startUpdatingLocation];
       CLLocation *curLocation = [manager location];
       NSString *theLocation = curLocation.description;
       NSLog(@"%@", theLocation);
  
       //open the connection
       [self initNetworkConnection];
       NSData *data = [[NSData alloc] initWithData:[theLocation dataUsingEncoding:NSASCIIStringEncoding]];
        NSLog(@"%@", data);
       [outputStream write:[data bytes] maxLength:[data length]];
  
       //recieve data from the server
       locations = [[NSMutableArray alloc] init];
       NSLog(@"%@", locations);
  
       [inputStream close];
       [outputStream close];
  
   }
  
   -(void)initNetworkConnection {
       CFReadStreamRef readStream;
       CFWriteStreamRef writeStream;
       CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"137.165.8.168", 13413, &amp;readStream, &amp;writeStream);
  NSLog(@"connection created!");
  inputStream = (__bridge NSInputStream *)readStream;
  outputStream = (__bridge NSOutputStream *)writeStream;
  
  //set delegates
  [inputStream setDelegate:self];
  [outputStream setDelegate:self];
  
  //have processes perform in a run loop
  [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
  [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
  
  //now open the streams
  [inputStream open];
  [outputStream open];
  
   }
  
   - (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode {
       NSLog(@"got an event");
       switch (eventCode) {
           case NSStreamEventHasSpaceAvailable:
               NSLog(@"None!");
               break;
           case NSStreamEventOpenCompleted:
               NSLog(@"Stream opened");
               break;
           case NSStreamEventHasBytesAvailable:
               if (aStream == inputStream) {
                   uint8_t buffer[1024];
                   int len;
                   while ([inputStream hasBytesAvailable]) {
                       len = [inputStream read:buffer maxLength:sizeof(buffer)];
                       if (len &gt; 0) {
                           NSString *output = [[NSString alloc] initWithBytes:buffer length:len encoding:NSASCIIStringEncoding];
                           if (nil != output) {
                               NSLog(@"%@",output);
                               [locations addObject:output];
                           }
                       }
                   }
               }
  
       }
   }
  
   - (void)didReceiveMemoryWarning
   {
       [super didReceiveMemoryWarning];
       // Dispose of any resources that can be recreated.
   }
  
  
   @end
  </code></pre>