当前位置: 首页 > 工具软件 > Foundation > 使用案例 >

FOUNDATION的基本介绍

卢才艺
2023-12-01

FOUNDATION简介

foundation 单词的解释就是基础

 乔帮主 离开苹果以后开创了 NeXT -> 一套用来开发的类库

 Foundation 库是基础是关注基本数据类型和基本类的使用的库

 主要学习字符串处理数组处理键值对处理


11-字符串的常见用法

字符串操作类有两个: NSString(不可变字符串), NSMutableString(可变字符串)。

1, 掌握一个规律将常用的方法分类增删改查与其他

2, 如果有的方法有多种情况我们首先学习最简单的使用熟练后在考虑复杂的

 NSString 是不可变字符串主要讨论 增加  查询与其他

 增加(创建方法)

 1, 字面量         2, 构造方法      3, 快速创建对象方法


URL 统一资源地址就是网址

查询类的方法

1, 比较

      isEqualToString

      compare

strcmp("1", "2"); // 如果 > 返回 大于0的数如果 == 返回 0; 如果 < 返回小于0的数


01-字符串检查前后缀方法

所谓的检查前后缀就是判断字符串是以什么开头或者以什么结尾

关键字: has

hasPrefix 判断前缀       hasSuffix 判断后缀的




终端命令:
ls 列出当前目录下的所有内容     cd 切换目录   clear  清除终端   touch 是修改文件的属性的命令,如果文件不存在,则创建文件
open 打开文件  cp 复制文件


NSRange 用来专门表示范围
 range.location  表示位置  即 起始位置  
range.length   表示长度, 即 多少个字符


字符串的查找方法:
 字符串的查找方法是指从一个字符串中找某一个部分的方法 关键字 rangeOf  

如果没有找到就会返回 location 为一个非常大的数字, length  0

 这个非常大的数字在 OC 中被定义为 NSNotFound


字符串截取

字符串截取就是在一个字符串中将符合要求的一部分字符串取出来

 关键字 substring

 科学计算中 表示范围的时候一般左边取得到右边取不到


字符串的替换

将一个字符串中的某一个部分替换成需要的样子

   关键字 stringBy + replace


字符串与基本数据的转换:  字符串提供了一系列的 "类型Value” 方法


去除首尾空格:去除首尾空格

   关键字 stringBy + trimming


NSMutableString简介

对于 可变字符串 使用最多的就是创建字符串和构造字符串

也就是说追加与插入使用的比较多一般都是使用 NSString


使用可变的字符串其目的就是为了构造动态的字符串

   因此使用的时候都是首先创建一个 空的字符串作为容器

   然后根据需要构造相应的字符串

1, 加入字符串           appendString        appendFormat


NSArray的基本使用

数组的概念

1, C 语言的数组不方便存储对象

2, C 语言数组不是面向对象的缺少强大的方法

3, C 语言的数组是定长的数组, OC 中提供了可变长度的数组

NSArray  不可变数组

NSMutableArray   可变数组


数组的常用方法    1, count 属性用来活动数组中元素的个数 NSLog(@"%lu", arr.count);


2, objectAtIndex 方法  

      NSString *s = [arr objectAtIndex:1];

       NSLog(@"%@", s);

3, 遍历

        // for (int i = 0; i < arr.count; i++) {

        //      NSString *s = [arr objectAtIndex:i];

        //      NSLog(@"%@", s);

        // }

在数组中还提供了快速获得首尾元素的属性 :arr.firstObject // 最开始的元素

                                arr.lastObject  // 最后的元素

     数组提供了一个方法, IndexOfObject 表示对象的索引


数组的遍历:除了可以使用 for 循环来遍历数组外,可以使用for-in循环 block 来进行遍历

语法:    for ( 临时变量  in  数组 ) {

            使用临时变量访问结果

        }

语法  [arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

obj 表示当前循环的临时变量 for-in 中的临时变量的含义相同

             idx 当前下标好比 for 循环中的 i

             stop 表示是否停止 break 相同



字符串与数组的连用


NSMutableArray

使用可变数组基本上就是为了实现动态的生成数组

        一般就是生成一个空的数组然后的将元素一个个加入进来


键值对数据的概念与意义

键值对

 1, 为什么需要这个数据类型数组可以存储数据但是查找比较费劲

 2, 是什么类型

      键值对是一个"散列表(哈希表, hash)". 他的特点就是按照键来存储数据

      系统中在存储数据的时候都是按照键和值一起存储的

      首先根据键算出一个唯一的地址来然后将数据存储到该地址处

    那么很容易根据键九算出地址取出数据因此在查找技术中常常使用该方法

可变键值对

一般来讲可变键值对也是创建一个空的作为容器使用

NSMutableDictionary *dic1 = [[NSMutableDictionary allocinit];

 NSMutableDictionary *dic2 = [NSMutableDictionary dictionary];



NSFileManager

该类完成对文件的基本信息的访问与基本操作保存创建删除移动复制

1, 该类为一个单例类

  创建的时候使用 defaultManager 类方法来获得对象



常见的结构体 

NSPoint  CGPoint(ios一般用这个)


NSNumberNSValue


NSDate

NSDateFormatter 是一个格式化日期与字符串的类

    他可以轻松的实现字符串与时间对象的互相转换并且可以格式化任意的输入形式



集合的内存管理

1. 对象别集合引用后,所有者就会 +1    2.集合被释放后,会将引用的所有对象都 —1


copy概念的引入

系统中 NSObject 提供了 copy 的方法(mutableCopy)

        // 该方法用来复制当前对象创建一个新的副本

        

        // 但是该方法如何创建是未定义的它调用了 copyWithZone: 来具体实现如何创建

        

        // 如果我们需要自己创建副本就需要实现该方法

        

        // 而该方法由 NSCopying 来提供


深拷贝与浅拷贝 

第一种观点      1 第一种观点

            1> 浅拷贝是指拷贝引用变量

             Person *p1 = [Person new];

             Person *p2 = p1;  // 浅拷贝

        

             2> 深拷贝就是连同对象数据一起全部拷贝

              Person *p3 = [Person new];

                p3.属性 = p1.属性;

第二种观点       2 第二种观点

         拷贝 就是要 复制

         如果对象中的属性都是值类型那么深拷贝与浅拷贝没有区别

         如果对象属性含有类类型的那么深拷贝与浅拷贝才有区别

 类似资料: