NSRange的定义
typedef
{
}
NSRange是一个结构体,其中location是一个以0为开始的index,length是表示对象的长度。他们都是NSUInteger类型。 而NSUInteger类型的定义如下:
#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef
#else
typedef
#endif
例子:
下面这个例子,将输出IPA
NSString
// Starting at position 25, get 3 characters
NSRange
// This would also work:
// NSRange range = {25, 3};
NSLog
搜索字符串:
NSString
NSRange
// Did we find the string "IPA" ?
if
上面的程序将输出Range is: {25, 3}。NSStringFromRange()方法,将一个NSRange返回一个NSString。而另外一个函数NSRangeFromString()则是将NSString转换为NSRange
下面这个例子将从后向前反向搜索字符串:
NSString
// Search for the "ia" starting at the end of string
NSRange
// What did we find
if
上面的程序将输出:Range is: {12, 2}
ac
如果你要获取一个字符串或者一个数组中的一个子集,那么使用NSRange会很方便的定义这个子集。
NSRange定义
Declaration:
}
创建NSRange的方法定义
Declaration:
例如获取一个数组的一个子集:
这样就获得了这个数组中0开始的5个元素的子集。
NSNumber
+ (NSNumber *)numberWithInt:(int)value;
+ (NSNumber *)numberWithDouble:(double)value;
- (int)intValue;
- (double)doubleValue;
NSNumber可以将基本数据类型包装起来,形成一个对象,这样就可以给其发送消息,装入NSArray中等等。NSNumber * intNumber=[NSNumber numberWithInt:100];
NSNumber *floatNumber=[NSNUmber numberWithFloat:100.00];
int i=[intNumber intValue];
if([intNumber isEqualToNumber:floatNumber]) ....
NSNumber继承NSObject ,可以使用比较 compare: isEqual等消息
int main (int argc, constchar * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePoolalloc] init];
NSNumber* intNumber;
NSNumber* floatNumber;
intNumber = [NSNumbernumberWithInt:100];
floatNumber = [NSNumbernumberWithFloat:99.9];
NSInteger myInt;
myInt = [intNumber integerValue];
NSLog(@"myInt = %li", myInt);
[pool drain];
return0;
}