Confused about Serial.read() with ORSSerialPort from OSX to Leonardo

I've recently started using your ORSSerialPort code in my OSX-Arduino project, but I'm stuck on what I think is probably a simple problem.

I have tried sending NSNumber and int types from cocoa to my arduino, but keep seeing extra numbers in the serial output.

Cocoa:

NSInteger val = 289;

NSData *dataToSend = [NSData dataWithBytes:&val length:sizeof(val)];

[self.port sendData:dataToSend];

Arduino:

void loop() {

if( Serial1.available() ){

  data = Serial1.read();

  Serial.println(data);
}
}

The output (to Serial Monitor):
33
1
0
0
0
0
0
0

If I send smaller numbers from cocoa (like 15), I get the 15 first, but still get all the trailing zeros. I know NSNumber is really just a long. I suspect it has something to do with how serial data is being received, but I'm new to serial programming. Any explanation would be awesome.

Duh.. it's because Serial.read() only reads a single byte. NSNumber (long) is 8 bytes.