1 数字对象
1. NSNumber:数字对象创建如下:
NSNumber *num, intNum, floatNum;
NSInteger myInt;
//integer
intNum = [NSNumber numberWithInteger:10];
myInt = [intNum integerValue];
NSLog("%li",(long)myInt );
//float
floatNum = [NSNumber numberWithFloat:10.11];
NSLog("%g",[floatNum floatValue]);
//char
num = [NSNumber numberWithChar:'a'];
NSLog("%c",[num charValue]);
//double
num = [NSNumber numberWithDouble:1234e+15];
NSLog("%lg",[num doubleValue]);
//判断数字是否相等
if( [num isEqualToNumber:floatNum]==YES ){}
//判断数字大小
if( [num compare:floatNum]==NSOrderedAscending ) //顺序
NSInteger和NSUInteger不是NS对象,而是typedef。NSInteger是64位long或32位int。
2. 初始化方式
2 字符串对象
NSString *str = @”hello world”;
NSLog("%@",str);
NSString 使用@符号表示,并使用”%@”格式化输出,还可以格式化输出其他对象。
3 description方法
“%@”格式化其实是调用的NSObject的description方法,如果没有覆写description方法,只能打印对象的类名和内存地址,NSString已经覆写了description方法。
4 不可变字符串
<span style="font-weight: normal;">NSString *str1 = @"hello world A";
NSString *str2 = @"hello world B";
NSString *res;
NSRange *range;
//字符串的长度
NSLog("%lu",[str1 length]);
//字符串复制到另一个
res = [NSString stringWithString:str1];
NSLog("%@",res);
//添加字符串到末尾
str2 = [str1 stringByAppendingString:str2];
//判断是否相等
if([str1 isEqualToString:str2]==YES)
//转换为大写
res = [str1 uppercaseString];
NSLog("%@", [res UTF8String]);NSString *str1 = @"hello world A";
NSString *str2 = @"hello world B";
NSString *res;
//字符串的长度
NSLog("%lu",[str1 length]);
//字符串复制到另一个
res = [NSString stringWithString:str1];
NSLog("%@",res);
//添加字符串到末尾
str2 = [str1 stringByAppendingString:str2];
//判断是否相等
if([str1 isEqualToString:str2]==YES)
//转换为大写
res = [str1 uppercaseString];
NSLog("%@", [res UTF8String]);
//从字符串提取
res = [str1 substringToIndex:3];
//从index往后截取
res = [str1 substringFromIndex:5];
//截取8到13
res = [str1 substringWithRange:NSMakeRange(8,6)];
//查找字符串 获取NSRange对象
range = [str1 rangeOfString:@"hello"]</span>
<span style="font-weight: normal;">NSString *str1 = @"hello world A";
NSString *str2 = @"hello world B";
NSString *res;
NSRange *range;
//字符串的长度
NSLog("%lu",[str1 length]);
//字符串复制到另一个
res = [NSString stringWithString:str1];
NSLog("%@",res);
//添加字符串到末尾
str2 = [str1 stringByAppendingString:str2];
//判断是否相等
if([str1 isEqualToString:str2]==YES)
//转换为大写
res = [str1 uppercaseString];
NSLog("%@", [res UTF8String]);NSString *str1 = @"hello world A";
NSString *str2 = @"hello world B";
NSString *res;
//字符串的长度
NSLog("%lu",[str1 length]);
//字符串复制到另一个
res = [NSString stringWithString:str1];
NSLog("%@",res);
//添加字符串到末尾
str2 = [str1 stringByAppendingString:str2];
//判断是否相等
if([str1 isEqualToString:str2]==YES)
//转换为大写
res = [str1 uppercaseString];
NSLog("%@", [res UTF8String]);
//从字符串提取
res = [str1 substringToIndex:3];
//从index往后截取
res = [str1 substringFromIndex:5];
//截取8到13
res = [str1 substringWithRange:NSMakeRange(8,6)];
//查找字符串 获取NSRange对象
range = [str1 rangeOfString:@"hello"]</span>
5 可变字符串
NSMutableString是可变的字符串,继承自NSString。
NSMutableString *mstr;
//创建可变字符串
mstr = [NSMutableString stringWithString:@"hello"];
//插入字符串
[mstr insertString:@"world" atIndex:[mstr length];
//末尾拼接
[mstr appendString:"world"];
//根据范围删除字符串
[mstr deleteCharactersInRange:NSMakeRange(3,3)];
//设置字符串
[mstr setString:@"hello world"];
//替换字符串
[mstr replaceCharactersInRange:NSMakeRange(1,1) withString:@"1"];
6 数组NSArray
NSArray *week = [NSArray arrayWithObjects:@"mon",@"tue",@"wed",@"thu",@"fri",@"sat",@"sun"];
for(int i=0; i<7; i++){
NSLog("%@",[week objectAtIndex:i]);
}
7 可变数组
NSMutableArray *nums = [NSMutalbeArray array];
NSNumber *number;
for(int i=0; i<10; i++){
number = [nums addObject:[NSNumber numberWithInteger:i]];
}
8 词典对象dictionary
词典对象类似Java的Map,如下:
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
[dictionary setObject:@"字母A" forKey:@"a"];
[dictionary setObject:@"字母B" forKey:@"b"];
NSLog("%@",[dictionary objectForKey:@"a"]);
NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithObjectAndKeys:
@"字母A",@"A",@"字母B",@"B"];
for(NSString *key in dictionary){
NSLog("%@",[dictionary objectForKey:key]);
}
9 SET对象
#define INTOBJ(v) [NSNumber numberWithInteger:v];
NSMutalbeSet *set1 = [NSMutableSet setWithObjects:INTOBJ(1),INTOBJ(2),INTOBJ(3),nil];
NSMutalbeSet *set2 = [NSMutableSet setWithObjects:INTOBJ(4),INTOBJ(5),INTOBJ(6),nil];
//是否相等
if( [set1 isEqualToSet:set2]==YES )
//是否包含
if( [set1 containsObject:INTOBJ(10)]==YES )
//添加和删除
[set1 addObject:INTOBJ(20)];
[set1 removeObject:INTOBJ(1)];
//获取交集
[set1 intersectSet:set2]
//合并
[set1 unionSet:set2];
#define INTOBJ(v) [NSNumber numberWithInteger:v];
NSMutalbeSet *set1 = [NSMutableSet setWithObjects:INTOBJ(1),INTOBJ(2),INTOBJ(3),nil];
NSMutalbeSet *set2 = [NSMutableSet setWithObjects:INTOBJ(4),INTOBJ(5),INTOBJ(6),nil];
//是否相等
if( [set1 isEqualToSet:set2]==YES )
//是否包含
if( [set1 containsObject:INTOBJ(10)]==YES )
//添加和删除
[set1 addObject:INTOBJ(20)];
[set1 removeObject:INTOBJ(1)];
//获取交集
[set1 intersectSet:set2]
//合并
[set1 unionSet:set2];