1. NSString

1.1创建方法(3种):
int main(int argc, const char * argv[]) {@autoreleasepool {//创建方法NSString *str1 = [[NSString alloc]init];//创建的是空字符串,没有意义NSString *str2 = @"Hello World";//讲一个字符串对象直接赋值给str2.@是一个对象运算符,创建的都是常量对象,保存在代码区NSString *str3 = @"Hello World";NSLog(@"%p",str2);NSLog(@"%p",str3);//str2和str3是同一个对象,如果两个常量对象完全相同,不会创建两个对象int a = 10;NSString *str4 = [NSString stringWithFormat:@"%@ World %d",@"Hello",a];//格式化创建,通过占位符,把其他的数据转换为字符串NSLog(@"%@",str4);NSString *str5 = [NSString stringWithFormat:@"%@ World %d",@"Hello",10];NSLog(@"%p",str4);//stringWithFormat创建的对象即使内容相同,也会是完全不同的对象NSLog(@"%p",str5);}return 0;
}

运行结果:
2016-08-25 09:43:14.913 day20_01[731:43371] 0x100001048
2016-08-25 09:43:14.914 day20_01[731:43371] 0x100001048
2016-08-25 09:43:14.915 day20_01[731:43371] Hello World 10
2016-08-25 09:43:14.915 day20_01[731:43371] 0x1002041b0
2016-08-25 09:43:14.915 day20_01[731:43371] 0x100100710

1.2截取方法(3种):
        NSString *str6 = @"www.baidu.com";NSString *str7 = [str6 substringToIndex:3];//从第一个字符开始截取几个字符(截取头)NSLog(@"%@",str7);NSString *str8 = [str6 substringFromIndex:10];//从指定位置开始截取到最后一个字符(截取尾)NSLog(@"%@",str8);NSString *str9 = [str6 substringWithRange:NSMakeRange(4,5)];//从指定位置开始连续截取几个字符(截取中段)NSLog(@"%@",str9);

运行结果:
2016-08-25 09:49:35.936 day20_01[784:45364] www
2016-08-25 09:49:35.936 day20_01[784:45364] com
2016-08-25 09:49:35.937 day20_01[784:45364] baidu

1.3拼接方法(3种)
        NSString *str10 = @"Hello";NSString *str11 = @" World";NSString *str12 = [[NSString alloc]initWithFormat:@"%@%@",str10,str11];//初始化拼接NSLog(@"%@",str12);NSString *str13 = [str10 stringByAppendingString:str11];//追加拼接NSLog(@"%@",str13);NSString *str14 = [str10 stringByAppendingFormat:@"%d %@",a,str11];//格式化拼接,可以自动转换其他类型数据成字符串后拼接NSLog(@"%@",str14);
1.4替换方法
        NSString *str15 = @"www.baidu.com";NSString *str16 = [str15 stringByReplacingCharactersInRange:NSMakeRange(4, 5) withString:@"google"];NSLog(@"%@",str16);

运行结果:
2016-08-25 10:29:58.298 day20_01[849:52810] www.google.com

1.5从文件中读入字符串
        NSString *str17 = [NSString stringWithContentsOfFile:@"/Users/tarena/Desktop/testString" encoding:NSUTF8StringEncoding error:nil];NSLog(@"%@",str17);
1.6用占位符%@输出自定义类的对象
-(NSString*)description
{NSString *stu = [NSString stringWithFormat:@"姓名:%@ 年龄:%d 性别:%@ 住址:%@",self.name,self.age,self.gender == 1?@"男":@"女",self.addr];return stu;
}
        SHStudent *stu = [[SHStudent alloc]initWithName:@"张三" andAge:18 andGender:YES andAddr:@"江苏南京"];[stu show];NSLog(@"%@",stu);

运行结果:
2016-08-25 11:01:38.825 day20_01[965:63324] 张三 18 男 江苏南京
2016-08-25 11:01:38.825 day20_01[965:63324] 姓名:张三 年龄:18 性别:男 住址:江苏南京

1.7判断两个字符串相等的方法
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {@autoreleasepool {//从键盘输入一个用户名和密码,与文件中保存的对比,如果相同,显示登陆成功,否则显示用户名或密码错误NSString *str = @"string";if ([str isEqualToString:@"string"]) {NSLog(@"相同");}char *userName = (char*)malloc(sizeof(char));char *pwd = (char*)malloc(sizeof(char));NSString *userName1;NSString *pwd1;NSString *userAndPwd = [NSString stringWithContentsOfFile:@"/Users/tarena/Desktop/userAndPwd" encoding:NSUTF8StringEncoding error:nil];int i = 0;for (i = 0;[[userAndPwd substringWithRange:NSMakeRange(i, 1)] isEqualToString:@" "]==NO; i ++);userName1 = [userAndPwd substringToIndex:i];pwd1 = [userAndPwd substringFromIndex:i+1];NSLog(@"请输入用户名:");scanf("%s",userName);NSLog(@"请输入密码");scanf("%s",pwd);if ([userName1 isEqualToString:[NSString stringWithFormat:@"%s",userName]] && [pwd1 isEqualToString:[NSString stringWithFormat:@"%s",pwd]]) {NSLog(@"登陆成功");}elseNSLog(@"用户名或密码错误");free(userName);free(pwd);}return 0;
}

运行结果:
2016-08-25 11:55:16.666 day20_02[1119:75949] 相同
2016-08-25 11:55:16.667 day20_02[1119:75949] 请输入用户名:
shuan
2016-08-25 11:55:18.844 day20_02[1119:75949] 请输入密码
132
2016-08-25 11:55:20.039 day20_02[1119:75949] 用户名或密码错误

2. NSMutableString

2.1是可变字符串,是NSString的子类
2.2创建方法(4种)
//创建方法
NSMutableString *str1 = [[NSMutableString alloc]init];//空字符串,有意义,效率低
NSMutableString *str2 = [NSMutableString stringWithCapacity:100];//预估值
//NSMutableString *str3 = @"abc";//str3会退化成不可变字符串,不能这样初始化可变字符串
NSMutableString *str4 = [NSMutableString stringWithString:@"string"];//创建可变字符串的对象同时初始化
NSMutableString *str5 = [NSMutableString stringWithFormat:@"age:%d",6];//创建可变字符串对象的同时,进行格式化的方法
2.3添加方法(2种)
[str2 appendString:@"The word, string, "];//追加添加方法
NSLog(@"%@",str2);
[str2 appendString:@"has six characters"];
NSLog(@"%@",str2);
NSMutableString *str6 = [NSMutableString stringWithString:@"string"];
[str6 appendFormat:@" has %lu characters",str6.length];
NSLog(@"%@",str6);
2.4求字符串中字符的个数,即求字符串长度
2.5删除方法(1种)
2.6确定子串在整个字符串中的范围
NSMutableString *str7 = [NSMutableString stringWithString:@"I'm learing OBJective-C language."];
//[str7 deleteCharactersInRange:NSMakeRange(12, 10)];
[str7 deleteCharactersInRange:[str7 rangeOfString:@"OBJective-"]];//不用数字符串个数
NSLog(@"%@",str7);
2.7替换方法
NSMutableString *str8 = [NSMutableString stringWithString:@"This is a string"];
[str8 replaceCharactersInRange:[str8 rangeOfString:@"a"] withString:@"another"];
NSLog(@"%@",str8);

3. NSNumber

3.1用于将基本数据类型的数据或变量封装成OC的类
3.2封装方法:numberWith...
3.3拆封方法:...Value
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {@autoreleasepool {int a = 10;NSNumber *i = [NSNumber numberWithInt:a];//封装,将基本数据类型的数据变成OC类的对象NSLog(@"%@",i);int b;b = [i intValue];//拆封,将OC;类的对象还原成基本数据类型的数据NSLog(@"%d",b);float f = 3.14;NSNumber *f1 = [NSNumber numberWithFloat:f];NSLog(@"%@",f1);float f2 = [f1 floatValue];NSLog(@"%f",f2);}return 0;
}

4.NSValue

4.1NSValue是NSNumber的父类
4.2用于封装结构体类型的变量
#import <Foundation/Foundation.h>
typedef struct
{int x;int y;
}SHPoint;int main(int argc, const char * argv[]) {@autoreleasepool {SHPoint point;point.x = 10;point.y = 20;NSValue *value = [NSValue valueWithBytes:&point objCType:@encode(SHPoint)];NSLog(@"%@",value);SHPoint point1;[value getValue:&point1];NSLog(@"%d %d",point1.x,point1.y);}return 0;
}

5.NSData

5.1OC中的日期时间类
5.2创建对象即可得到世界标准时间
5.3本地时间需要通过一个格式代码转换
#import "NSDate+SHLocalTime.h"@implementation NSDate (SHLocalTime)
-(NSDate *)localTime
{return [NSDate localTime];
}
+(NSDate *)localTime//本地时间
{//以下为格式代码NSTimeZone *zone  = [NSTimeZone systemTimeZone];NSUInteger integer = [zone secondsFromGMTForDate:[NSDate date]];NSDate *localTime = [[NSDate date]dateByAddingTimeInterval:integer];return localTime;
}
@end
5.4获取指定时间
5.5时间间隔(3种)
NSDate *date1 = [NSDate date];
NSLog(@"%@",date1);//世界标准时
NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:30];
NSLog(@"%@",date2);
date2 = [NSDate dateWithTimeIntervalSinceNow:-30];
NSLog(@"%@",date2);
NSTimeInterval seconds = [date1 timeIntervalSince1970];
NSLog(@"%lf",seconds);
NSDate *date3 = [NSDate dateWithTimeIntervalSinceNow:-60];
seconds = [date3 timeIntervalSinceNow];
NSLog(@"%lf",seconds);
NSDate *time1 = [NSDate dateWithTimeIntervalSinceNow:-60*60*24];
NSDate *time2 = [NSDate dateWithTimeIntervalSinceNow:60*60*24];
seconds = [time1 timeIntervalSinceDate:time2];
NSLog(@"%lg",seconds);
5.6格式化输出时间
NSDateFormatter *df = [[NSDateFormatter alloc]init];
df.dateFormat = @"yyyy年MM月dd日 HH:mm:ss EEEE";
NSString *str = [df stringFromDate:date1];
NSLog(@"%@",str);

思考练习:
1、根据身份证号码,求出生年月日
2、输出当前时间的年月日
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
解析:

#import <Foundation/Foundation.h>NSDate *localTime()
{NSTimeZone *zone = [NSTimeZone systemTimeZone];NSUInteger integer = [zone secondsFromGMTForDate:[NSDate date]];NSDate *localTime = [[NSDate date]dateByAddingTimeInterval:integer];return localTime;
}int main(int argc, const char * argv[]) {@autoreleasepool {NSString *readIDCard = [NSString stringWithContentsOfFile:@"/Users/tarena/Desktop/IDCard" encoding:NSUTF8StringEncoding error:nil];NSString *year = [readIDCard substringWithRange:NSMakeRange(6, 4)];NSString *month = [readIDCard substringWithRange:NSMakeRange(10, 2)];NSString *day = [readIDCard substringWithRange:NSMakeRange(12, 2)];NSLog(@"%@年%@月%@日",year,month,day);NSLog(@"%@",localTime());NSDate *now = [NSDate date];NSDateFormatter *date = [[NSDateFormatter alloc]init];date.dateFormat = @"yyyy年MM月dd日";NSString *dateNow = [date stringFromDate:now];NSLog(@"%@",dateNow);}return 0;
}

OC-FUNDATION-NSStringNSMutableStringNSNumberNSValueNSDate相关推荐

  1. 黑马程序员18——OC之Fundation(NSSet)

    /*  NSSet和NSArray的对比  1> 共同点  * 都是集合,都能存放多个OC对象  * 只能存放OC对象,不能存放非OC对象类型(基本数据类型:int.char.float等,结构 ...

  2. 黑马程序员15——OC之Fundation(了解常用结构体)

    下面是OC里面常用的结构体 /* NSRange(location length)  NSPoint\CGPoint  NSSize\CGSize  NSRect\CGRect (CGPint CGS ...

  3. 黑马程序员20——OC之Fundation(NSValue)

    #import <Foundation/Foundation.h> // NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue int main() {        ...

  4. 黑马程序员16——OC之Fundation(NSNumber)

    #import <Foundation/Foundation.h> int main() {     // @20  将 20包装成一个NSNumber对像               N ...

  5. iOS9基础知识(OC)笔记

    1月16日 Objective  C(20世纪80年代初) 一.OC语言概述 1.1985年,Steve  Jobs成立了NeXT公司 2.1996年,12月20日,苹果公司宣布收购了NeXT  so ...

  6. iOS 52个技巧学习心得笔记 第一章 熟悉OC

    1 .简单了解OC 2 .在类的头文件中尽量少引入其他头文件 3 .多用字面量语法 少用与之等价的方法  4 .多用类型常量 少用 #define 预处理指令 5 .用枚举表示状态,选项,状态码 1 ...

  7. OC语言之Objective-C简介

    # Objective-C简介 ![](http://7xj0kx.com1.z0.glb.clouddn.com/qbs.png) ##1.Objective-C简介 - Objective-C是一 ...

  8. 【iOS开发】从Cocoa框架说开去--Fundation框架系列

    [Cocoa简介] Cocoa是苹果公司为Mac OS X所创建的原生面向对象API 是Mac OS X上五大API之一.(其他四个:Carbon POSIX X11 Java)它是苹果的面向对象开发 ...

  9. 基于Fundation框架的简单管理系统

    我也是正在学习IOS开发的,OC中有很多框架 ,其中Fundation/Fundation.h是我们开发中常常用到的,其中涉及到的三个工厂类:字符串 ,数组,字典  又是这个框架的重中之重,我们可以通 ...

  10. OC 组合实现多继承

    OC无法完全先C++使用多继承,但可以采用组合的模式来代替继承模式.(协议实现)实现多继承的代码:举例现在ClassC需要继承ClassA中methodA.ClassB中methodB,具体的代码为: ...

最新文章

  1. Keep Moving blog改版
  2. 百度地图实现定位功能
  3. 2019.6.16完成classstack任务
  4. java 接口编程_JAVA面向接口编程
  5. Silverlight教程第二部分:使用布局管理 (木野狐译)
  6. reduce python3_python3中reduce函数的使用
  7. js高程笔记1-3章
  8. jsp___jstl标签
  9. 机器人伪装成人类在 GitHub 上为开源项目修复 bug
  10. 嵌入式系统——系统可靠度计算
  11. kali Linux 没有ip解决办法
  12. MOTU Digital Performer 11.0 WiN 老牌音乐制作宿主软件
  13. qscrollbar 固定滑块大小_模仁、镶件、斜顶、滑块等模具零件的加工工艺分析
  14. 2018走出架构误区
  15. 经验分享:半小时建立自己的在线管理系统!
  16. 教你在线翻译PDF文档的方法
  17. 2.CreateWindowEx
  18. memcpy与strcpy的实现与区别
  19. [转]键盘上的符号用英语怎么读?
  20. MacBookPro2016款连接无线wifi速率只有20mb/s解决方案

热门文章

  1. 数据源:订单表与订单明细表
  2. python中的冒泡序列
  3. 【干货】安防监控工程选择POE交换机的五大优势总结!
  4. 网站被K,你对网站整改了吗?
  5. nodejs操作mongodb数据库
  6. python求和函数详解_关于python:对多个数字求和的函数
  7. 越来越热的眼镜,苹果为什么不做 | 今夜科技谈
  8. 使用Spring Boot JPA Specification实现使用JSON数据来查询实体数据
  9. RISC-V 指令学习笔记(基于CH32V103)
  10. 计算机丢失vip.dll,电脑常识:电脑提示dll文件丢失/损坏,该怎么修复?