在 NSString 上定义一个类别(将其放在任何源代码模块的顶部或放入新的 .m/.h 文件对,@interface 放入 .h,@implementation 放入 .m):
@interface NSString (NSStringWithOctal)
-(int)octalIntValue;
@end
@implementation NSString (NSStringWithOctal)
-(int)octalIntValue
{
int iResult = 0, iBase = 1;
char c;
for(int i=(int)[self length]-1; i>=0; i--)
{
c = [self characterAtIndex:i];
if((c<'0')||(c>'7')) return 0;
iResult += (c - '0') * iBase;
iBase *= 8;
}
return iResult;
}
@end
像这样使用它:
NSString *s = @"77";
int i = [s octalIntValue];
NSLog(@"%d", i);
该方法返回一个整数,表示字符串中的八进制值。如果字符串不是八进制数,则返回 0。前导零是允许的,但不是必需的。