Well, the question is a bit of a mis-nomer, because typing isn't the only thing you have to worry about. Not only do you need to worry about access, but you also need to worry about encoding. Assuming you just want the UTF8 encoding, than you can get away with:
NSString *myString = @"Hello";
const unsigned char *string = (const unsigned char *) [myString UTF8String];
If, however, you need access to one-byte per character data, than you probably want one of the other encodings, like ASCII:
NSString *myString = @"Hello";
const unsigned char *string = (const unsigned char *) [myString cStringUsingEncoding:NSASCIIStringEncodin];
The other valuable encoding that you might want to use is Latin1, which gets you standard ASCII, along with accented characters and symbols used by most languages in Western Europe and the U.S.: NSISOLatin1StringEncoding