• IOS基础之 (八) Foundation框架


    一 常用类

     NSRange 范围,NSPoint  点,NSSize /CSSize 大小,CGRect 

    1 NSRange

    1)NSRange是一种C语言结构用来帮助描述一系列的条款,包括一个起点位置和一个计数方法。可以对其指定起始位置以及所需的元素数量。

    2)NSRange的结构如下图所示:

     

     location是在行列中的起始位置(基于零点),而length是行列中的条目个数。NSUInteger只是单纯的一个无符号的值,它支持32位和64位系统。

     3) 例子

    NSString *param= @"0123456789";
    NSRange ns = NSMakeRange(3, 5) ;
    NSLog (@"subStr=%@", [param substringWithRange:ns]);

     输出结果为:  subStr=34567

    二 NSString

     1. 创建字符串

    NSString *string= @"hello”;
    NSString *string = [[NSString alloc] initWithString: @"hello"];

    2.拼接字符串

     1 float f = 2.4;
     2 NSString *floatStr =[NSString stringWithFormat:@"%.1f" , f];
     3 NSLog(@"%@", floatStr );
     4     
     5 double d = 68.9999;
     6 NSString *doubleStr = [NSString stringWithFormat:@"%.4f" , d ];
     7 NSLog(@"%@" , doubleStr );
     8     
     9 char c = 'c';
    10 NSString *charStr = [NSString stringWithFormat:@"%c" , c];
    11 NSLog(@"char=%@" , charStr );

    第2行:转换单精度浮点数为字符串。

    第6行:转换双精度浮点数为字符串。

    第10行:转换字符为字符串。

     3.将字符串转化成基本数据类型

    使用字符串的 floatValue, doubleValue, initValue将字符串转换为基本数据类型。

    1 NSString *str = @"32421"; 
    2 int i= [str intValue];

    4. 将字符串中的字母转换成大写

    NSString *str = @"china";
    NSString *str1 =[str uppercaseString];

    5.将字符串中的字母转换成小写

    NSString *str1 = "CHINA";
    NSString *str2 = [str1 lowercaseString];

    6.将字符串的首字母转成大写,其余转成小写。

    NSString *str = @"CHINA";
    NSString *str2 = [str capitalizedString];

    三 数组

    数组分为可变数组(NSMutableArray)和不可变数组(NSArray)。

    数组只能存放OC对象,不能放基本数据类型,可以在基本数据类型前面,加上@。

    1.不可变数组

    1. 不可变数组的创建

    2. 数组派生出新的数组

    3.数组的遍历

     1 //第一种遍历:普通for循环
     2 long int count = [array count];
     3 for (int i = 0 ; i < count; i++) {
     4     NSLog(@"1遍历array: %zi-->%@",i,[array objectAtIndex:i]);
     5 }
     6      
     7 //第二种遍历:快速for循环,需要有外变量i
     8 int i = 0;
     9 for (id obj in array) {
    10     NSLog(@"2遍历array:%zi-->%@",i,[array objectAtIndex:i]);
    11     i++;
    12 }

    2.可变数组

    定义:创建一个可变数组,并且给他配置空间,空间存满会自动扩充空间。

    注意:@[]只能创建不变数组。

    四 字典

    1. 不可变字典

    1)初始化

    NSDictionary *dic = [NSDictionary dictionaryWithObject: @"value" forKey:@"key" ];

    NSDictionary
    *dic2 = [NSDictionary dictionaryWithObjects: @[@"v1" , @"v2" , @"v3"] forKeys: @[@"k1" , @"k2" , @"k3"]];

    NSDictionary *dic3 = @{@"key1" : @"value2", @"key2" : @"value2"};

    2. 可变字典

    五 集合总结:

    1 NSString / NSMutableString。

    2 NSArray / NSMutableArray。

    1) 有序

    2) 快速创建(相对于不可变数组): @[@"a" , @"b" , @"c"]

    3) 快速访问: 数组名[i]

    3 NSSet。

    1) 无序

    4 NSDictionary / NSMutableDictionary。

    1)无序

    2)快速创建: @[ key: value, key : value]

    3)快速访问: 字典名[key] 

    5 NSSet 和 NSArray 的对比:

    1) 共同点:

       都是集合,都能存放多个OC对象。

       都能存放OC对象,但是不能存放非OC的对象类型(基本数据类型,结构体,枚举)。

       本身都不可变,都有可变的自雷。

    2) 不同点:

       NSArray是有序的, NSSet是无序的。

      

    1.有序的角度: 数组有序, 字典和集合都是无序的
    2.能否通过下标来访问: 数组可以, 字典和集合都不可以
    3.元素是否可以重复: 数组可以重复, 字典中key值不可以重复,value值可以重复, 集合中元素不可以重复
    4.打印的样式: 数组: () 字典: {} 集合:  {()}

      

  • 相关阅读:
    网络编程基础
    Unicode 和 UTF-8 有什么区别?
    IDEA中全局搜索只展示100条结果的问题
    MySql实现无则插入有则更新的解决方案
    总是报Expected indentation of 0 spaces but found 2如何解决
    vue Cannot read property 'get' of undefined
    mac 下修改 jenkins 端口
    mac 查找被占用的8080端口并关闭
    sql server 常用高级查询sql
    java & spring 注解 备忘
  • 原文地址:https://www.cnblogs.com/wangshuo1/p/iOS-8.html
Copyright © 2020-2023  润新知