27-黑马程序员------OC 语言学习笔记--- Foundation02

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

NSArray和NSMutableArray
NSArray代表元素有序,可重复的一个集合,集合中每个元素都有其对应的顺序索引,NSArray只能保存对象,不能保存基本类型。NSArray代表集合元素不可变的集合,一旦NSArray创建成功,程序不能向集合中添加新的元素,不能删除集合中已有的元素,也不能替换集合元素。NSMutableArray是NSArray的子类,它代表的是一个集合元素可变的集合,因此,可以向集合中添加,删除,替换元素

void use()  
{  
      
    // OC数组不能存放nil值  
    // OC数组只能存放OC对象、不能存放非OC对象类型,比如int、struct、enum等  
      
    // 这个array永远是空数组  
    // NSArray *array = [NSArray array];  
      
      
    /* 
     1.NSArray的创建 
     */  
    NSArray *array2 = [NSArray arrayWithObject:@"jack"];  
      
    // nil是数组元素结束的标记  
    NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil nil];  
    // [array2 count];  
      
    //NSArray *array4 = [NSArray arrayWithObjects:@"jack", @"rose", @"4324324", nil];  
      
    // 快速创建一个NSArray对象  
    NSArray *array4 = @[@"jack", @"rose", @"4324324"];  
      
    //NSMutableArray *ARR = @[@"jack", @"rose"];  
      
      
    /* 
     2.NSArray的元素个数 
     */  
    NSLog(@"%ld", array3.count);  
      
      
    /* 
     3.NSArray中元素的访问 
     */  
    NSLog(@"%@", [array3 objectAtIndex:1]);  
      
    //array3[1];  
    NSLog(@"%@", array3[0]);  
}  
  
// 遍历数组  
void use2()  
{  
    Person *p = [[Person alloc] init];  
      
    NSArray *array = @[p, @"rose", @"jack"];  
  
    //遍历数组,自定义方法     
    //    for (int i = 0; i<array.count; i++)  
    //    {  
    //        NSLog(@"%@", array[i]);  
    //    }  
      
    // id obj代表着数组中的每一个元素  
    //int i = 0;  
    //    for (id obj in array)  
    //    {  
    //        // 找出obj元素在数组中的位置  
    //        NSUInteger i = [array indexOfObject:obj];  
    //  
    //        NSLog(@"%ld - %@", i, obj);  
    //        //i++;  
    //  
    //        if (i==1)  
    //        {  
    //            break;  
    //        }  
    //    }  
   
    //系统遍历数组的方法    
    [array enumerateObjectsUsingBlock:  
       
     // 每遍历到一个元素,就会调用一次block  
     // 并且当前元素和索引位置当做参数传给block  
     ^(id obj, NSUInteger idx, BOOLBOOL *stop)  
     {  
         NSLog(@"%ld - %@", idx, obj);  
           
           
         if (idx == 0)  
         {  
             // 停止遍历  
             *stop = YES;  
         }  
           
     }];  
      
   
}  
  
//NUMutableArray的使用  
void use3()  
{  
    NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil nil];  
  
    // @[] 只创建不可变数组NSArray  
    /* 错误写法 
     NSMutableArray *array = @[@"jack", @"rose"]; 
      
     [array addObject:@"jim"]; 
     */  
      
      
    // 添加元素  
    [array addObject:[[Person alloc] init]];  
      
    [array addObject:@"jack"];  
      
    // 删除元素  
    //[array removeAllObjects];  
    // 删除指定的对象  
    // [array removeObject:@"jack"];  
    [array removeObjectAtIndex:0];  
      
    // 错误写法  
    // [array addObject:nil];  
      
      
    NSLog(@"%@", array);  
      
    NSLog(@"%ld", array.count);  
}  

   NSString和NSMutableString
NSString代表字符序列不可变的字符串,而NSMutableString则代表字符序列可变的字符串。NSMutableString是NSString的子类。NSString的大致包括如下功能。
1、创建字符串:可以使用init开头的实例方法,也可使用string开头的类方法,还可以直接使用@""的形式给出字符串常量
2、读取网络URL或文件初始化字符串
3、將字符串内容写入文件或URL
4、获取字符串长度,包括字符个数和字节个数
5、连接,分隔,替换,比较字符串

//创建字符串  
void stringCreate()  
{  
    /* 
     1.字符串的创建 
     */  
    NSString *s1 = @"jack";  
      
    NSString *s2 = [[NSString alloc] initWithString:@"jack"];  
      
    NSString *s3 = [[NSString alloc] initWithFormat:@"age is %d", 10];  
      
    // C字符串 --> OC字符串  
    NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"];  
    // OC字符串 --> C字符串  
    const charchar *cs = [s4 UTF8String];  
      
    // 读取文件创建字符串,NSUTF8StringEncoding 用到中文就可以用这种编码  
    NSString *s5 = [[NSString alloc] initWithContentsOfFile:@"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil];  
      
      
    // URL : 资源路径  
    // 协议头://路径  
    // file://  
    // ftp://  
    // http://weibo.com/a.png  
      
      
    // http://www.baidu.com  
      
    // NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/apple/Desktop/1.txt"];  
    NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/1.txt"];  
      
    NSString *s6 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];  
    NSLog(@"s6=\n%@", s6);  
      
      
    /* 
     一般都会有一个类方法跟对象方法配对 
     [NSURL URLWithString:<#(NSString *)#>]; 
     [NSString stringWithFormat:@""]; 
     [NSString stringWithContentsOfFile:<#(NSString *)#> encoding:<#(NSStringEncoding)#> error:<#(NSError *__autoreleasing *)#>]; 
      
     */  
  
}  
  
void stringExport()  
{  
    // 字符串的导出  
    [@"Jack\nJack" writeToFile:@"/Users/apple/Desktop/my.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];  
      
      
    NSString *str = @"4234234";  
    NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/my2.txt"];  
    [str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];  
}  
  
int main()  
{  
      
    NSMutableString *s1 = [NSMutableString stringWithFormat:@"my age is 10"];  
    // 拼接内容到s1的后面  
    [s1 appendString:@" 11 12"];  
      
    // 获取is的范围  
    NSRange range = [s1 rangeOfString:@"is"];  
    [s1 deleteCharactersInRange:range];  
      
    NSString *s2 = [NSString stringWithFormat:@"age is 10"];  
      
    NSString *s3 = [s2 stringByAppendingString:@" 11 12"];  
      
      
    NSLog(@"s1=%@, s2=%@", s1, s2);  
      
    return 0;  
}  

  

转载于:https://www.cnblogs.com/iceshan/p/4492924.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值