美文网首页
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三大基础类常用汇总

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