I was able to get this to work using the following:
int i=0;
for(id aItem in aIDs) {
NSString *directCommand = [NSString stringWithFormat:@"A%@",aItem];
[self performSelector:@selector(fSend:) withObject:directCommand afterDelay:(2.0*i)];
i++;
}
[socket readDataWithTimeout:30 buffer:elBuffer bufferOffset:0 maxLength:-1 tag:1];
-(void)fSend : (NSString *)aCommand {
[socket writeData:aCommand withTimeout:30 tag:1];
}
This gives me a 2 seconds between performing the writeData without having to freeze the app and without flooding my equipment with writes.