Well, one way you could do it would be to create your own character set to compare against. Then you can take advantage of NSString's stringByTrimmingCharactersInSet:
and NSCharacterSet's invertedSet
property to remove all characters from the set that don't match the characters you initially specify. Then, if the final string matches the input string, it didn't contain illegal characters.
NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"];
NSString *input = @"a";
NSString *output = [input stringByTrimmingCharactersInSet:[myCharSet invertedSet]];
BOOL isValid = [input isEqualToString:output];
NSLog(@"%d",isValid);