Skip to content

Instantly share code, notes, and snippets.

@hackugyo
Last active November 27, 2015 09:09
Show Gist options
  • Select an option

  • Save hackugyo/548fe1e76016c62dbf5d to your computer and use it in GitHub Desktop.

Select an option

Save hackugyo/548fe1e76016c62dbf5d to your computer and use it in GitHub Desktop.
[NSString # integerValue] is suck
#import <Foundation/Foundation.h>
int main(int argc, char *argv[]) {
@autoreleasepool {
NSArray *befores = @[
@"100", // => 100, a number
@"10 0", // => 10, a number
@"00100", // => 100, a number
@"10blank", // => 10, not a number
@"blank10", // => 0, not a number
@"blank200", // => 0, not a number
@"" // => 0, not a number
];
for (NSString *before in befores) {
// http://stackoverflow.com/a/3474311
{
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSNumber *number = [formatter numberFromString:before];
[formatter release];
NSLog(@"%@ is %@", before, (!!number ? @"a number" : @"not a number"));
}
int after0 = [before intValue]; // 最後にintに入れる場合、#integerValueとおなじ
NSLog(@"result: %d", after0 - 1);
int after = [before integerValue];
NSLog(@"result: %d", after - 1);
NSInteger after2 = [before integerValue];
NSLog(@"result: %ld", after2 - 1);
NSInteger *after3 = [before integerValue]; // たいへんなことになるよ
NSLog(@"result: %ld", after3 - 1);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment