OC三大基础类常用汇总

字符串 String


初始化定义
NSString *str=[[NSString alloc]initWithString:@"hello"];
NSLog(@"%@",str);
        
NSString *str=@"hello";
字符串中把c字符串转成oc字符串
NSString *str=[[NSString alloc]initWithUTF8String:@"hello"];
将其他类型格式化转为oc字符串类型的功能
NSString *str=[[NSString alloc]initWithFormat:@"hello"];
NSString *str=[NSString stringWithFormat:@"%d",num];


不可变字符串

返回字符串长度
-(NSUInteger)length
NSUInteger len=[str length];

一个汉字是一个字符,一个英文字母也是一个字符,字符串长度说的是字符个数 UTF-8

返回/取出单个字符
-(unichar)characterAtIndex:(NSUInteger)index;
unichar c=[str characterAtIndex:3];
比较两个字符串的大小关系
//两个字符串是否相等  isEqualToString  //"=="比较的事两个指针变量所有指向的地址是否是同一个地址 str1=str2
-(BOOL)isEqualToString:(NSString*)a string

//比较两字符串大小   compare
-(NSComparisonResult)compare:(NSString*)a string

//不区分大小写比较大小    caseInsensitiveCompare
-(NSComparisonResult)caseInsensitiveCompare:(NSString*)a string
查找子串的位置和范围
-(NSRange)rangeOfString:(NSString*)a string
NSRange range=[str rangeOfString:@"str"];
        
NSString *str=@"how old are you";
NSRange range=[str rangeOfString:@"old"];
NSLog(@"%ld,%ld",range.location,range.length);
子串的提取
//从字符串对象中的from位置开始取到后面的所有内容,返回
NSString *str=@"how old are you ";
NSLog(@"%@",[str substringFromIndex:3]);

//从字符串到开始取到to的位置
NSLog(@"%@",[str substringToIndex:3]);

//从某个位置开始,取多长
NSRange range={3,5};
NSLog(@"%@",[str substringWithRange:range]);
字符串转化为基本数据类型
-(double)doubleValue;
-(float)floatValue;
-(int)intValue;
-(NSInteger)integerValue;
-(long long)longLongValue;
-(BOOL)boolValue;

NSString *str=@"12.3";
double d=[str doubleValue];
判断前后缀
//判读当前字符串是否是以aString为前缀
-(BOOL)hasPrefix:(NSString*)aString;

//判读当前字符串是否是以aString为前缀
-(BOOL)hasSuffix:(NSString*)aString;
NSString *str=@"ios android";
[str hasPrefix:@"ios"];
大小写转换
//把当前字符串转成大写
NSString *str=@"abc";
NSLog(@"%@",[str uppercaseString]);

//把当前字符串转成小写
NSString *str=@"ABC";
NSLog(@"%@",[str lowercaseString]);

//当前字符串中每个单词的首字母大写
-(NSString*)capitalizedString;
字符串分割
//按字符串整体分割,把当前字符串以separator作为分隔符进行分割
NSString *str=@"you me you me";
NSArray *arr=[str componentsSeparatedByString:@" "];
NSLog(@"%@",arr);


可变字符串

NSMutableString *str=[[NSMutableString alloc]init];
重置字符串内容
NSMutableString *str=[[NSMutableString alloc]initWithString:@"hello"];
[str setString:@"world"];
NSLog(@"%@",str);
增加
//追加子串
[str appendString:@"hhh"];

//追加格式化子串
[str appendFormat:@"%d %c %f",34,’t’,3.21];

//指定索引插入子串
[str insertString:@"ABC"atIndex:3];
NSRange range={5.5};
[str deleteCharacterInRange:range];
[str replaceCharactersInRange:range withString:@"xxx"];
rangeOfString




数组


NSArray *arr=[[NSArray alloc]initWithObjects:@"hello",@"are",@"you",nil];
NSArray *arr=@[@"one",@"two",@"three",dog];


不可变数组

根据索引,返回数组的元素
Dog * dog2 = [array1 objectAtIndex:0];
Dog * dog3 = array2[0];
返回数组的元素个数
NSUInteger count = [array count];
字符串的分割 componentsSeparatedByString
NSArray * subStrings = [str componentsSeparatedByString:@" "];
[str componentsSeparatedByCharactersInSet:<#(NSCharacterSet *)#>];
数组中字符串的拼接
NSString * _str = [数组对象名 componentsJoinedByString:@"*"];
数组的遍历 快速枚举法
//通过索引遍历
for (int i = 0; i < [array count]; i++) {
    NSLog(@"%@", array[i]);
}

//快速枚举法又叫for in循环 (java中叫 for each循环)
for (NSString *str in array) {
 //第一次循环str指向数组第一个元素,第二次循环,str指向数组第二个元素。。。
    NSLog(@"%@", str);
}

由于数组里可防治任意类型的对象,所以objectAtIndex返回值为id
id表示任意类型

可变数组

重置可变数组(改)
[array setArray:@[@"One", @"Two", @"Three", @"Four"]];
增加元素
追加:
[array addObject:@"Five"];
插入:
[array insertObject:@"Six" atIndex:2];
删除元素
//删除元素
//删除指定元素,传入需要删除的元素的地址,删除这个元素
//如果要删的是字符串,只需传入和所删字符串相等的字符串就可以了,不用传入同一个字符串。
//如果数组中有多个@"Four"会把所有的@“Four”全部删除
[array removeObject:@"Four"];
        
//删除指定索引的元素
[array removeObjectAtIndex:2];
交换两个元素的位置
[array exchangeObjectAtIndex:0 withObjectAtIndex:2];




字典


NSDictionary * dict = [[NSDictionary alloc]initWithObjectsAndKeys:@"One", @"1", @"Two", @"2", @"Three", @"3", nil];//初始化时,先写值,再写键,
        
//直接初始化时,先写的是键,再写值;即:键,值;键,值;
NSDictionary * dict2 = @{@"1": @"One", @"2": @"Two", @"3": @"Three"};//不可变字典


不可变字典

返回键值对个数
NSUInteger count = [dict2 count];
通过键返回值
NSString * str = [dict2 objectForKey:@"2"];
返回所有的键或值
//返回所有的键
NSArray * keys = [dict2 allKeys];

//返回所有的值
NSArray * values = [dict2 allValues];
快速枚举法遍历
//快速枚举法遍历
for (NSString * key in dict2) {
    //快速枚举法只能遍历字典的键
    NSLog(@"%@", [dict2 objectForKey:key]);
    //通过key再去查找值
}


可变字典

重置字典
[dict setDictionary:dict1];
添加键值对
//因为,键是唯一的;所以:setObject有两层意思:
//1)、当新的键值对里的键和字典里目前的所有键值对中的键有重复的话,就属于覆盖(即,用新的键值对中的值替换与之相等的键所对应的值)
        
//2)、当新的键值对的键,在字典没有相同的键,则属于添加。
[dict setObject:@"Four" forKey:@"0"];
删除键值对
[dict removeObjectForKey:@"0"];




属性修饰符


缺省修饰符
@property (readwrite) NSString * address;
//同时创建setter方法和getter方法
// 1.读写性的修饰符  readwrite,readonly
// 默认修饰:readwrite
        
@property (readonly) NSString * name;  
// 1 生成一个成员变量:NSString *_name;
// 2 生成getter方法,但不生成setter方法
-(void)setName:(NSString *)name;
        
@property (nonatomic) NSString * name;
原子性修饰符
//atomic:表示是线程安全的。
//nonatomic:表示是非线程安全的,使用此属性性能会提高一些。
// 目前工程均是单线程的,用nonatomic
        
@property (setter=setterAge:, getter=getAge) int age;
setter getter (给方法起另外的名字)
// 1 如果方法有参数,需要加: 来表示有参数 (即setterAge:才是函数名称)
// 2 如果修饰符有多个,通过,分隔
// 3 改名之后只能用新名称
-(void)setAge:(int)age
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容