Ну, вопрос немного неправильный, потому что печатать - не единственное, о чем вам нужно беспокоиться. Вам нужно не только беспокоиться о доступе, но и о кодировке. Предполагая, что вы просто хотите кодировку UTF8, вы можете обойтись без:
NSString *myString = @"Hello";
const unsigned char *string = (const unsigned char *) [myString UTF8String];
Если, однако, вам нужен доступ к однобайтовым данным на символ, чем вы, вероятно, захотите использовать одну из других кодировок, например, ASCII:
NSString *myString = @"Hello";
const unsigned char *string = (const unsigned char *) [myString cStringUsingEncoding:NSASCIIStringEncoding];
Другая полезная кодировка, которую вы можете использовать, - это Latin1, которая дает вам стандартный ASCII, а также акцентированные символы и символы, используемые большинством языков в Западной Европе и США: NSISOLatin1StringEncoding