目录:

一、NSMutableString可变字符串

二、NSNumber数字对象

三、NSValue

四、NSDate日期对象

五、NSArray数组对象

回到顶部

一、NSMutableString可变字符串

常用的操作就是crud增删改查

1 NSString只能做增查cr操作

2 NSMutableString可以做改删ud操作

3 可以改变字符串内容的功能,是NSString的子类

4 可变字符串的操作

 //1 字符串的初始化stringWithString

 NSMutableString* str3 = [NSMutableString stringWithString:@"abc"];

 NSLog(@"str3:%@",str3);       

 //2 修改字符串的内容

 //在指定位置添加新的字符串insertString

 [str3 insertString:@"" atIndex:];//在1下标这个位置插入123

 NSLog(@"str3:%@",str3);//a123bc

 //替换指定位置的字符串

 NSRange range = {,};//1代表修改位置 3代表修改长度

 [str3 replaceCharactersInRange:range withString:@"abc"];

 NSLog(@"str3:%@",str3);//aabcbc

         //删除指定位置的字符串,后面的字符串会向前补齐

         [str3 deleteCharactersInRange:range];

         NSLog(@"str3:%@",str3);//abc

         //3 两个字符串对象的操作

         //追加一个字符串

         NSMutableString* str4 = [NSMutableString stringWithString:@"abc"];

         [str4 appendString:@"def"];

         NSLog(@"str4:%@",str4);//abcdef

         //按照指定格式追加一个字符串

         [str4 appendFormat:@"123%@abc",@"def"];

         NSLog(@"str4:%@",str4);//abcdef123defabc

回到顶部

二、NSNumber数字对象

1 在很多类使用的时候,如果使用数值,就需要将数值转换成对象类型,而基本数据类型,是无法使用的,所以我们就要封装基本数据类型变为对象类型,数字对象常用处理方式和使用与基本数据类型无差别。其实就是把栈区放入堆区

2 数字对象的初始化

 //数字对象初始化

 int i = ;//基本数字类型

 NSNumber* number = [NSNumber numberWithInt:i];//对象类型 封装

 // 数字对象转换为基本数据类型

 //解封

 int i2 = [number intValue];

练习:将基本数据类型int、char、float、double分别封装成对象类型,输出其值

练习:将对象类型,拆为基本数据类型,输出

回到顶部

三、NSValue

1 有时需要创建一个对象,以密切反应原始数据类型或者数据结构,这种情况就需要使用NSValue类,它可以将任何OC中有效的变量类型封装成对象类型

2 NSNumber是NSValue的子类

3 使用NSValue封装一个结构体

 * 定义一个结构体类型

 typedef struct{

     int x;

     int y;

 }point1;

 * 声明一个结构体变量并赋值

 //结构体类型

 point1 point;

 point.x = ;

 point.y = ;

 * 通过NSValue,将结构体封装成NSValue对象

 //对象类型 封装结构体

 //参数1 结构体变量的内存地址 参数2 地址对应结构体类型

     NSValue* value = [NSValue valueWithBytes:&point objCType:@encode(point1)];

 * 把结构体对象拆成结构体类型

 //拆封

 point1 point2;

 [value getValue:&point2];

 NSLog(@"x:%d,y:%d",point2.x,point2.y);

回到顶部

四、NSDate日期对象

1 NSDate存储的是时间信息,默认存储的是世界标准时间(UTC),输出时需要根据时区转换为本地时间。中国大陆,香港,澳门,台湾的时间均与UTC时间差+8小时,也就是UTC+8

2 NSDate的使用

         //初始化 得到当前时间UTC

         NSDate* date = [[NSDate alloc] init];

         NSLog(@"date:%@",date);

         //得到一个时间,和当前比延迟30秒

         NSDate* date2 = [NSDate dateWithTimeIntervalSinceNow:];

         NSLog(@"date2:%@",date2);

         //练习:得到昨天的此时此刻,明天的此时此刻

         NSDate* date3 = [NSDate dateWithTimeIntervalSinceNow:*];

         NSLog(@"明天此时此刻:%@",date3);

         NSDate* date4 = [NSDate dateWithTimeIntervalSinceNow:-*];

         NSLog(@"昨天此时此刻:%@",date4);

         //得到一个过去的随机时间

         NSDate* date5 = [NSDate distantPast];

         NSLog(@"过去的随机时间:%@",date5);

         //得到一个将来的随机时间

         NSDate* date6 = [NSDate distantFuture];

         NSLog(@"将来的随机时间:%@",date6);

         //和过去时间对比 返回秒数

         NSTimeInterval second = [date timeIntervalSince1970];

         NSLog(@"second:%lf",second);

         //比较两个时间 返回更早的时间

         NSDate* earlierDate = [date earlierDate:date3];

         NSLog(@"earlierDate:%@",earlierDate);

         //比较两个时间 返回更晚的时间

         NSDate* laterDate = [date laterDate:date3];

         NSLog(@"laterDate:%@",laterDate);

 //将世界标准时间 转换为 当地时间

         //1.创建模板对象

         NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];

         //2.设置模板信息

         dateFormatter.dateFormat = @"HH:mm:ss MM-dd-yyyy";//hh 12小时制 HH 24小时制

         //3.通过模板对象将时间对象转换成字符串

         NSString* str = [dateFormatter stringFromDate:date];

         NSLog(@"%@",str);

回到顶部

五、NSArray数组对象

1 数组对象是一组有序对象的集合,通过索引下标取到数组中的各个元素对象,与字符串相同,数组也有可变数组和不可变数组,数组中不可以保存基本数据类型、结构体数据类型,需要使用NSNumber和NSValue进行数据封装

2 数组的使用

      //初始化

         NSArray* array = [NSArray array];

         //数组中添加一个元素

         NSArray* array2 = [NSArray arrayWithObject:@"one"];

         NSLog(@"array2%@",array2);

         //数组中添加多个元素

         NSArray* array3 = [NSArray arrayWithObjects:@"two",@"three", nil];

         NSLog(@"array3%@,%p",array3,array3);

         //通过一个已有的数组 创建一个新的数组

         NSArray* array4 = [NSArray arrayWithArray:array3];

         NSLog(@"array4%@,%p",array4,array4);

3 数组的常见用法

 //得到数组的长度

 NSUInteger length = [array4 count];

 //通过下标得到数组的元素

 NSString* str = [array4 objectAtIndex:];

 //遍历数组

 for (int i = ; i < [array4 count]; i++) {

             NSLog(@"array4[%d]:%@",i,[array4 objectAtIndex:i]);

         }

练习:向数组中存放数据,

int i = 10;

char c = 'a';

BOOL b = YES;

Student age:18 name:zhangsan

输出数组对象

练习:创建一个学生对象Student,有年龄,姓名,创建5个学生对象,放到数组中,遍历数组。查询5个学生信息,只显示姓名为zhangsan的信息。只显示年龄为18的学生信息。

 //4 在原来的数组上追加一组对象(把这一组的元素一一追加到原来的数组中)并创建新的数组

 NSArray* array4 = [array arrayByAddingObjectsFromArray:array2];

 //5 在原来数组上加一个数组对象并创建新的数组

 NSArray* array3 = [array arrayByAddingObject:array2];

 //6 将数组中的元素按指定符号连接起来变为字符串

 NSString* str = [array4 componentsJoinedByString:@":"];

 NSLog(@"%@",str);//one:two:three:1:2:3

 //7 将字符串按指定符号变为数组

 NSArray* array5 = [str componentsSeparatedByString:@":"];

 NSLog(@"%@",array5);

 //输出结果

 /*(

     one,

     two,

     three,

     1,

     2,

     3

 )*/

 //8 判断数组中是否包含某个对象,返回值是布尔值类型

 BOOL b = [array5 containsObject:@"two"];

 NSLog(@"%d",b);

 //9 获取某个对象在数组的下标,如果数组中不存在该对象,则返回一个垃圾值下标

 NSUInteger index = [array5 indexOfObject:@"three"];

 NSLog(@"%ld",index);

 //10 获取数组中最后一个元素

 NSString* lastObj = [array5 lastObject];

 NSLog(@"%@",lastObj);    

作业:查API文档学习:NSMutableArray(可变数组)、NSMutableString(可变字符串)

作业:根据身份证号码,求年龄?求出生年月日?(NSString、NSMutableString)

作业:100.100.100.100(NSArray NSMutableArray)

第一位0~100,第二位,0~100 广州

第一位100~200,第二位,0~100 北京

第一位100~200,第二位,100~200 上海

作业:学生->班级->学院->学校

8     4     2    1

* 查看所有学生信息

* 显示 姓名zhangsan

* 显示 年龄18

(NSArray NSMutableArray)

02-Foundation-NSMutableString、NSNumber、NSValue、NSDate、NSArray的更多相关文章

  1. OC NSNumber和NSValue和NSDate和NSData

    一 NSNumber // // main.m // 07-NSNumber // // Created by apple on 13-8-12. // Copyright (c) 2013年 itc ...

  2. Objective-C( Foundation框架 一 NSNumber(NSValue))

    NSNumber: 是OC中处理数字的一个类 NSValue是NSNumber的子类 如何处理: 把int,float,double  包装成一个对象 使用NSNumber的好处: 可以把基本数据类型 ...

  3. oc77--结构体,NSNumber,NSValue,NSDate,NSCalendar

    // // main.m // OC中的常用结构体 // #import <Foundation/Foundation.h> int main(int argc, const char * ...

  4. NSNumber、NSValue、NSDate、NSObject

    注:OC中数组和字典只能存储OC对象不能存放基本数据类型. NSNumber NSNumber可以用来把一个基本数据类型包装成一个NSNumber类型的对象. NSNumber *number = [ ...

  5. [BS-02] iOS数组、字典、NSNumber 新写法—— @[]、@{}

    IOS数组.字典.NSNumber 新写法—— @[].@{}   //标准写法 NSNumber * number = [NSNumber numberWithInt:]; NSArray * ar ...

  6. _int、NSInteger、NSUInteger、NSNumber的区别和联系

    1.首先先了解下NSNumber类型: 苹果官方文档地址:https://developer.apple.com/library/ios/documentation/Cocoa/Reference/F ...

  7. 85、int 、NSInteger、NSUInteger、NSNumber的区别和联系

    NSNumber是NSValue的一个子类,它是一个对象来存储数字值包括bool型,它提供了一系列的方法来存储char a signed or unsigned char, short int, in ...

  8. 【iOS知识学习】_int、NSInteger、NSUInteger、NSNumber的差别和联系

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/weasleyqi/article/details/33396809 1.首先先了解下NSNumber ...

  9. 02:Sysbench基准压测(oltp_update_index.lua、oltp_update_non_index.lua)my.cnf

    目录 Sysbench 基准压测 my.cnf 一.Sysench测试前准备 1.1.压测环境 二.进行OLTP_update测试 2.1.安装压测工具sysbench 2.2.执行压测 三.执行结果 ...

随机推荐

  1. Java thread中对异常的处理策略

    转载:http://shmilyaw-hotmail-com.iteye.com/blog/1881302 前言 想讨论这个话题有一段时间了.记得几年前的时候去面试,有人就问过我一个类似的问题.就是j ...

  2. BZOJ 1194: [HNOI2006]潘多拉的盒子( BFS + tarjan + dp )

    O(S²)枚举2个诅咒机, 然后O(n²)BFS去判断. 构成一个有向图, tarjan缩点, 然后就是求DAG的最长路.. ------------------------------------- ...

  3. Linux命令压缩与解压缩

    zip格式的文件:zip和unzip zip 命令: # zip test.zip test.txt 它会将 test.txt 文件压缩为 test.zip ,当然也可以指定压缩包的目录,例如 /ro ...

  4. c++实现二分查找

    简要描述: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除 困难. 条件:查找的数组必须要为有序数组. 二分查找的过程剩简要描述如下图: 二种实 ...

  5. PHP学习建议(来自老手)

    框架太多了,有一个用着,先用熟练,因为框架思想区别不大. 用熟悉一个,再看其他,就容易多.看那么多,没有一个熟悉的,还是什么也不知道. 框架还是要用熟悉才行,然后才是产品如何设计,mysql性能真的有 ...

  6. JS 某一区域内所有CheckBox全选和取消全选(.net)

    假设在某个table中的两个td,一个放全选checkbox,一个放所有的checkbox[其他标签类似] eg:        <td>人才类别:<asp:CheckBox ID= ...

  7. 剖析MFC六大关键技术(五六)--消息映射与命令传递

    说到消息,在MFC中,“最熟悉的神秘”可算是消息映射,那是我们刚开始接触MFC时就要面对的东西.有过SDK编程经验的朋友转到MFC编程的时候,一下子觉得什么都变了样.特别是窗口消息及对消息的处理跟以前 ...

  8. java学习之二叉树的实现

    二叉树是一种数据结构,每个节点都有两个子节点. 二叉树的遍历有三种方式, 先序遍历是 根节点,左子树,右子树: 中序遍历是 左子树,根节点,右子树: 后序遍历是 左子树,右子树,根节点: java实现 ...

  9. [week2]每周总结与工作计划

    这周总体过的还不错吧,没有颓废多少 = =... 果然有计划能够让效率提高,看了每周做个计划是很有益的. 这周前几天照例很忙,课比较多.后面几天每天早上都会安排下今天的计划,这样做起事来就有条理性多了 ...

  10. QT 入门 -QApplication QPushButton QDialog Ui类型的手工使用

    QT 1.工具 assistant  帮助文档 qtconfig  QT配置工具 qmake     QT的make与项目文件智能创建工具 uic          UI界面的设计文件的编译工具 mo ...