zoukankan      html  css  js  c++  java
  • iOS

    1.NSString
            A.创建的方式:
                stringWithFormat:格式化字符串  ,创建字符串对象在堆区域
                @"jack" :简化字符串创建 ,创建字符串对象在常量区。
            B.特点:恒定性:字符串一旦被创建在内存中,那么它就无法改变了。
                   字符串创建的时候会去搜索内存,如果内存中有对应的字符串,就不会创建新的了。
                    字符串对象就算没有一个强指针指向,它也不会被回收。
            C.需要掌握的常用方法:
             1).创建格式字符串  stringWithFormat:
             2).使用NSURL读写网络上的资源  stringWithContentsOfURL:
             3).字符串的比较    isEqualToString:
             4).字符串的替换    stringByReplacingOccurrencesOfString:
             5).字符串转换为其他的类型    xxxValue
             6).获得字符串的长度    length
             7).根据符号将字符串分割成一个数组的多个元素,并返回数组结果
             componentsSeparatedByString
     

     
     2.NSMutableString:
     
            A.特点:字符串的内容可以被修改。没有恒定性的。
            B.创建:NSMutableString *str = [NSMutableString stringWithFormat:@"jack"];
            C.常用的方法:
                        appendString:在字符串的后面追加新的字符串
                        appendFormat:在字符串的后面追加格式字符串
        总结:
            大部分情况下,用NSString来保存字符串。
            什么时候应用它:如果要做大批量的字符串拼接,就使用NSMutableString
     

     
     3.NSArray
            A.创建:[NSArray arrayWithObject:]:创建带有一个元素的OC数组
                   [NSArray arrayWithObjects:](记得最后加上nil):创建带有多个元素的OC数组
                                            NSArray *days = [NSArray arrayWithObjects:@"SUN", @"MON",@"TUE",@"WED",@"THU",@"FRI",@"SAT", nil];
                                    等价于:  NSArray *days = @[@"SUN","MON","TUE","WED","THU","FRI","SAT"];
                  @[@"jack",@"rose"]:创建一个NSArray数组的简要创建方式。
     
            C.常用方法: 
                     
    [array count] : 得到这个数组对象的长度。
    [arrayobjectAtIndexindex]: 传入数组的索引(index) 得到数据对象。
    [arrayWithObjects: ...] :向数组对象初始化赋值。这里可以写任意对象的指针,结尾必须使用 nil,以标志结束.
    +(id)arrayWithObjects:obj1,obj2,...nil 创建一个新的数组,obj1,obj2......是他的元素对象,以 nil 对象结尾
    -(BOOL)containsObject:obj 确定数组中是否包含对象 obj
    -(NSUInteger)count 返回数组元素个数
    -(NSUInteger)indexOfObject:obj 第一个包含 obj 元素的索引号
    -(id)objectAtIndex;i 返回存储在位置 i 的对象
    -(void)makeObjectsPerformSelector:(SEL)selector selector 只是的消息发送给数组中的每个元素
    -(NSArray*)sortedArrayUsingSelector:(SEL)selector 根据 selector 指示的比较方法对数组进行排序,比如: NSArray * array = @[@"b",@"d",@"a",@"z"];
     
    array = [array sortedArrayUsingSelector:@selector(compare:)]; NSLog(@"排序后 array%@",array);
     
       
                3.使用block来遍历集合。
                 [arr enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
                 //obj:正在遍历的元素
                 //idx:正在遍历的元素的下标
                 //stop:设置遍历终止的BOOL指针  ,赋值形式  *stop=YES;
                 }];
     

    4.NSMutableArray
     
    (数组实际上是分配长度不可变的地址的,NSMutableArray之所以能变长度,实际上是内部重新分配了一个空间,将原来的数组复制过来,使用新分配的这个,内部把这个过程封装好了而已,所以实际上它也是长度不可变的)
                创建方式:NSMutableArray *arr = [NSMutableArray arrayWithObjects:];
                        NSMutableArray *arr = [NSMutableArray new];
                      //因为此数组是可变得,所以可以创建一个空数组再赋值。
                常用方法:
    array 创建一个空数组
    +(id)arrayWithCapacity:size 创建一个数组,指定容量为 size
    -(id)initWithCapacity:size 初始化一个新分配的数组,指定容量为 size
    -(void)addObject:obj 将对象 obj 添加到数组末尾
    -(void)insertObject:objatIndex:i 将对象 obj 插入到索引为 i 的位置
    -(void)replaceObject:obj atIndex:i 将数组中索引为 i 处的元素用 obj 置换
    -(void)removeObject:obj 从数组中删除所有是 obj 的对象
    -(void)removeObjectAtIndex:i 从数组中删除索引为 i 的对像
    -(void)sortUsingSelector:(SEL)selector selector 只是的比较方法将数组排序
     

     
    NSSet
    (1)都是存储不同的对象的地址
    (2)NSArray 是有序的集合,NSSet 是无序的集合。 (3)集合是一种哈希表,运用散列算法,查找集合中的元素比数组速度更快,但是它没有顺序。
         创建
     
              NSSet * set2 = [[NSSet alloc] initWithObjects: @"one",@"two",@"three",@"four", nil];
     
    (1)返回集合中对象的个数
     
    [set count];
     
    (2)判断集合中是否拥有某个元素 判断集合中是否拥有@”two”:
     
    BOOL ret = [set containsObject:@"two"];
     
    NSSet * set= [[NSSet alloc] initWithObjects:
     
    @"one",@"two",@"three",@"four", nil];
     
    (3)判断两个集合是否相等
     
    BOOL ret = [set isEqualToSet:set2];
     
    (4)判断 set 是否是 set2 的子集合
     
    BOOL ret = [set isSubsetOfSet:set2];
     
    (5)集合也可以用枚举器来遍历
    NSEnumerator * enumerator = [set objectEnumerator]; NSString *str;
    while(str =[enumerator nextObject])
    { ..... }
     
    (6)数组转换为集合
    NSArray * array = [[NSArray alloc] initWithObjects: @"one",@"two",@"three",@"four", nil];
    NSSet * set= [[NSSet alloc] initWithArray:array];
     
    (7)集合转换为数组
    NSArray * array2 = [set allObjects];
     

    NSDictionary
     
    字典初始化:
     
    (1)以一个元素初始化
     
    NSDictionary *dic = [NSDictionary dictionaryWithObject:numObj forKey:@"key"];
     
    (2)初始化两个元素
     
    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys: numObj, @"valueKey", numObj2, @"value2",nil];
    (3)初始化新字典,新字典包含 otherDic
    NSDictionary *dic = [NSDictionary dictionaryWithDictionary:otherDic];
    (4)以文件内容初始化字典
     
    NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:path];
     
    (5)也可创建多维字典 使用快速创建的方式:
     
    NSArray *persons = @[
    @{@"name" : @"jack", @"qq" : @"432423423", @"books": @[@"5 分钟突破 iOS 编程", @"5 分钟
     
    突破 android 编程"]},
    @{@"name" : @"rose", @"qq" : @"767567"}, @{@"name" : @"jim", @"qq" : @"423423"}, @{@"name" : @"jake", @"qq" : @"123123213"} ];
     
    常用方法:
    (2)通过 key 获取对应的 value 对象 NSObject *valueObj = [dic objectForKey:@"key"];
    (3)将字典的 key 转成枚举对象,用于遍历 NSEnumerator *enumerator = [dic keyEnumerator];
    (4)获取所有键的集合 NSArray *keys = [dic allKeys];
    (5)获取所有值的集合 NSArray *values = [dic allValues];

    NSMutableDictionary
     
    (1)初始化一个空的可变字典
    NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"key1",@"v2",@"key2",nil];
    NSDictionary *dic3 = [NSDictionary dictionaryWithObject: @"v3" forKey:@"key3"];
    (2)向字典 2 对象中添加整个字典对象 3
    [dic2 addEntriesFromDictionary:dic3];
     
    (3)向字典 2 对象中最佳一个新的 key3 value3
    [dic2 setValue:@"value3" forKey:@"key3"];
     
    (4)初始化一个空的可变字典
    NSMutableDictionary *dic1 = [NSMutableDictionary dictionary];
     
    (5)将空字典 1 对象内容设置与字典 2 对象相同
    [dic1 setDictionary:dic2];
     
    (6)将字典中 key1 对应的值删除
    [dic1 removeObjectForKey@"key1"];
    NSArray *array = [NSArray arrayWithObjects:@"key1", nil];
    (7)根据指定的数组(key)移除字典 1 的内容
    [dic2 removeObjectsForKeys:array];
    (8)移除字典所有对象
    [dic1 removeAllObjects];
     

    int型的10 变成NSNumber对象

    NSNumber *num = [NSNumber numberWithInt: 10];
    NSNumber *num = @10;
     

    NSFileManager

    创建一个文件并写入内容,比如在桌面上创建一个文件 lff.txt,并写入内容:My name is LFF:

     
    NSString *str = @”My name is LFF”;
     
    NSError *error;
     
    BOOL isWritSuccess = [str writeToFile:@”/User/LFF/Desktop/lff.txt” atomically:YES encoding:NSUTF8StringEncoding error:&error];
     
    if (isWritSuccess) {
     
    NSLog(@”创建成功”); }else
     
    {
    NSLog(@”error %@”,error);
     
    }
     
    (1)获得目标目录下,第一级目录
    NSFileManager * fileManager = [NSFileManager defaultManager]; NSString * path = @"/Users/aplle/Desktop/Myfile";
    NSError * error;
     
    NSArray * array =
    [fileManager contentsOfDirectoryAtPath:path error:&error];
     
    NSLog(@"array %@",array);

    (2)逐级获得所有子集的目录

     
    NSFileManager * fileManager = [NSFileManager defaultManager]; NSString * path = @"/Users/aplle/Desktop/other";
    NSError * error;
     
    NSArray * array =
    [fileManager subpathsOfDirectoryAtPath:path error:&error];
     
    NSLog(@"array %@",array);
     

    (3)删除

    NSFileManager * fileManager = [NSFileManager defaultManager]; NSString * path = @"/Users/aplle/Desktop/newmyfolder"; NSError * error;
    BOOL isRemoveSuccess =

    [fileManager removeItemAtPath:path error:&error]; if (isRemoveSuccess)

    {
    NSLog(@"删除成功");

    } else {

     
    NSLog(@"erro %@",error); }
  • 相关阅读:
    微信 JS SDK 的 chooseImage 接口在部分安卓机上容易造成页面刷新
    规约模式Specification Pattern
    ASP.NET Core 1.0基础之日志
    C# 7 新特性-2
    C# 7 新特性-1
    ASP.NET Core 1.0基础之诊断
    ASP.NET Core 1.0基础之依赖注入
    ASP.NET Core 1.0 基础之配置
    ASP.NET Core 1.0基础之静态文件处理
    FreeSql生产环境自动升级数据库解决方案
  • 原文地址:https://www.cnblogs.com/somethingWithiOS/p/6519936.html
Copyright © 2011-2022 走看看