美文网首页
OC三大基础类常用汇总

OC三大基础类常用汇总

作者: Singularity_Lee | 来源:发表于2018-05-14 10:45 被阅读0次

字符串 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

相关文章

  • OC三大基础类常用汇总

    字符串 String 初始化定义 字符串中把c字符串转成oc字符串 将其他类型格式化转为oc字符串类型的功能 不可...

  • 总纲

    一句代码创建常用UI控件类与对象OC中面向对象的编程思想OC基础语法复习OC中的协议OC中的block学习导航栏按...

  • 【OC梳理】NSObject

    NSObject NSObject是Foundation框架中的基础类,OC中常用的类绝大多数都继承于它,提供了包...

  • Java基础之常用API汇总

    Java基础之常用API汇总 String类: String类代表字符串,字符串本质就是一个字符数组.构造方法:1...

  • Java基础之常用API汇总

    Java基础之常用API汇总 String类: String类代表字符串,字符串本质就是一个字符数组.构造方法:1...

  • javaAPI(二)

    XML文件 读取XML常用API汇总(通过SAXReader类读取) 从java中写入XML常用API File类...

  • OC底层原理21-锁的原理

    iOS--OC底层原理文章汇总[/p/14911da92f74] 本文探索常用锁以及@synchronized底层...

  • OC&iOS

    OC语言基础 1.类与对象 类方法 OC的类方法只有2种:静态方法和实例方法两种 在OC中,只要方法声明在@int...

  • 1.第一个OC程序

    打开xcode,新建OC类: Type选择Foundation 表示使用OC基础框架。 案例:main.m代码:/...

  • 他人总结来自csdn

    各种帮助类汇总:https://github.com/Blankj/AndroidUtilCode 常用的 ios...

网友评论

      本文标题:OC三大基础类常用汇总

      本文链接:https://www.haomeiwen.com/subject/bnsddftx.html