黑马程序员-Foundation-几种常用方法(三)

------- IOS培训、android培训、java培训、期待与您交流! ----------

Foundation中最常用的类

NSString、NSArray、NSSet、NSDictionary 、NSDate 和基类NSobject

NSString(不可变) 子类   NSMutableString(可变)

NSArray         子类   NSMutableArray

NSSet           子类   NSMutableSet

NSDictionary    子类   NSMutableDictionary

NSString

一、 字符串的创建

1、 直接创建字符串

1 NSString *s1 = @"jack";
2
3 NSString *s2 = [[NSString alloc] initWithString:@"jack"]; // 不写这种
4
5 NSString *s3 = [[NSString alloc] initWithFormat: @" ege is %d ", 10 ];

2、 C语言字符串和OC字符串的相互转换

1 NSString *s = [[NSString alloc] initWithUTF8String:"jack"];  // 用于把C语言字符串转为OC字符串
2
3 const char *c = [s UTF8String];  // 把OC字符串转为C语言字符串
4
5  

3、 把文件内容读取为字符串

1 NSString *s = [[NSString alloc] initWithContentsOfFile:@"/Users/apple/Desktop/test.txt" encoding:NSUTF8StringEncoding error(涉及到中文转码就用这个编码):nil]; 

4、 字符串的导出

[@"Jack \n Jack" WriteToFile:@"/Users/apple/Desktop/test.txt"atomically:YES encoding:NSUTF8StringEncoding error(涉及到中文转码就用这个编码):nil]; (写YES的好处是当文件写到一般段了后,文件不会保存。NO则会保存)

5、 URL读取

NSURL什么资源都能读取,网络的和本地的以及服务器上的,只要是资源就能读取。

URL:资源路径路径

协议头://路径     file://      ftp://      http:weibo.com.a.png

格式: 协议头://路径, 网络资源的协议头一般是http, 本地文件file, ftp服务器资源是ftp。URL字符串必须有协议头。

1 NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/apple/Desktop/test.txt"]; 注意前面有三个斜杠, 前两个是固定写法, 第三个是根路径 /Users。另外, [NSURL fileURLWithPath:@"/Users/..."];  这种已经说了是 fileURL 了就可以不加 file:// 了。
2
3 NSString *s = [[NSString alloc] initWithContentsOfURL:URL encoding:NSUTF8StringEncoding error:nil];

使用URL也可以读取远程文件, 比如网页文件:

1 NSURL *baiduURL = [NSURL urlWithString:@"http://www.baidu.com"];  // 可以查看源代码,发现编码是UTF8
2
3 NSString *s = [NSString stringWithContentsOfURL:baiduURL encoding:NSUTF8StringEncoding error:nil];   // 读取的是网页的代码

6、 使用类方法

一般都会有一个类方法跟对象方法配对

1 NSString *s = [NSString stringWithFormat:@"%d", 5];
2
3 NSString *s = [NSString stringWi thContentsOfURL: ...];

注意:NSString的类方法通常都以string开头。

NSMutableString

1、 创建

NSMutableString继承NSString,创建可变字符串。

1 NSMutableString *ms = [NSMutableString stringWithFormat:@"age is 10"];
2
3 NSString *us = [NSString stringWithFormat:@"age is 10"];

注意: 决定这个字符串是可变的还是不可变的, 取决于右边调用方法的类, 而不是左边对象指针的类型。

2、 内容修改

1> 添加内容:

1     [ms appendString:@"ABC"];  // 拼接内容到字符串后面
2
3     [ms appendFormat:@"%d", 5];

2> 替换内容:

1     range = [ms rangeOfString:@"no"]
2
3     [ms replaceCharactersInange:range withString:@"yes"];

3> 插入内容:

1     [ms insertString:@"hello" atIndex:3];  // 在这个index前面插入

4> 删掉内容:

1 NSRange range = [ms rangeOFString:@"10"];
2
3 [ms deleteCharactersInRange:range];  // 删掉部分内容
4

NSArray 

NSArray是OC的有序数组,可以存储任何类型的OC对象,但是不能储存nil、int、float、enum、struct等类型的数据。

一、 创建

1 NSArray *array = [NSArray array];  // 空数组
2
3 array = [NSArray arrayWithObject:@"123"]; // 创建有一个元素的数组
4
5 array = [NSArray arrayWithObjects:@"A", @"B", nil];  // 创建一个有多个元素的数组

注意:nil是来标记数组的结束。

1 NSArray *array = @[@"Jack", @"Rose", @"123"];  // 使用编译器特性来方便快速的创建数组

NSMutableArray

NSMutableArray是NSArray的子类,是可变数组,可以修改存放的内容。

一、 创建

1 NSMutableArray *mArray = [NSMutableArray arrayWithObject:@"1"];

二、 修改元素

 1 //添加:
 2
 3 [mArray addObject:@"2"];
 4
 5 [mArray insertObject:@"3" atIndex:0];
 6
 7 // 删除:
 8
 9 [mArray removeObject:@"2"];
10
11 [mArray removeObject:@"2" inRange:range];
12
13 [mArray removeObjectAtIndex:1];
14
15 [mArray removeLastObject];
16
17 [mArray removeAllObjects];
18
19 [mArray removeObjectsInRange:range];
20
21 [mArray removeObjectsInArray:array];  //删除和array共有的元素
22
23 // 替换:
24
25 [mArray replaceObjectAtIndex:0 withObject:@"100"];
26
27 [mArray replaceObjectsInRange:range withObjectesFromArray:array];
28
29 [mArray exchangeObjectAtIndex:1 withObjectAtIndex:3];

NSSet: 

NSSet和NSArray的对比

1、共同点

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

只能存放oc对象,不能存放非oc对象类型

如:(基本数据类型:int、char、float等,结构体,枚举)

本身都不可变,都有一个可变的子类

2、不同点

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

 NSMutableSet 

可随时往里面加对象,但是加进去的对象是没有顺序的

1 //1、 添加元素
2
3 [set addObject:@"jack"];
4
5 //2、 移除元素
6
7 [set removeObject:@"jack"];
8
9 [set removeAllObjects]
时间: 2024-10-14 00:37:04

黑马程序员-Foundation-几种常用方法(三)的相关文章

黑马程序员——Foundation学习笔记(NSSet和NSMutableSet)

==========android培训.ios培训.java培训.期待与您交流========== 一.NSSet: NSSet NSSet里面存储的元素没有顺序,NSArray中的元素有顺序. NSSet *s = [NSSet set]; // 创建一个空的Set,永远是空,不可变. NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose",nil]; NSString *str = [s2 anyObject]; //

黑马程序员--Foundation框架之--NSString类以及它的子类NSMutableString类

继续看一下Foundation框架中的常用对象:NSString和NSMutableString 在OC中NSString对象是不可变的,和Java中的String一样的,而NSMutableString是可变的,和Java中的StringBuilder一样. 一.NSString对象 在OC中,NSString对象是非常重要的一个对象,也是最基础的一个对象,是用来处理字符串的常用类. 下面来看一下NSString的一些方法的使用: 1.创建的方法 // 字符串的创建方式 NSString *s

黑马程序员--Foundation框架之--NSArray类以及它的子类NSMutableArray类

今天我们继续来看一下Foundation框架中的NSArray类和 NSMutableArray类,NSArray类 是不可变的,NSMutableArray类是可变的. 一.NSArray类 NSArray中不可以存放基本数据类型,只能存放类的实例,如果需要将基本类型.结构体放入到数组中得话,需要通过NSNumber/NSValue进行数据的封装 同时不能在NSArray中存储nil // // main.m // 16_NSArray // // Created by waterfoxjie

黑马程序员------Foundation框架中各种牛瓣数据类型

-----iOS培训.Android培训.Java培训,期待与您交流----- 一.NSRange.NSPoint\CGPoint. NSSize\CGSize.NSRect\CGRect (CGPint CGSize)结构体 1)NSRange NSRange表示一个范围,比如我们想求个@"I fall in love with Objective-C~";  这个字符串中"love"的表示范围就是位置从11开始,长度为4: NSRange的本质是一个结构体, 里

黑马程序员--Foundation框架之--NSObject类

OC中的Foundation框架是系统提供的,他就相当于是系统的一套api,其内部有很多现有的类和功能提供给我们使用. 那么今天首先来介绍一下Foundation框架中的第一个类NSObject. // // Person.h // 13_NSObjectMethod // // Created by waterfoxjie 15-03-31. // Copyright (c) 2015年 waterfoxjie. All rights reserved. // #import <Foundat

黑马程序员——Foundation框架的小总结

一.Foundation框架—结构体 一.基本知识 Foundation框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文件就可以了.即#import<foundation/foundation.h> 补充:core foundation框架相对底层,里面的代码几乎都是c语言的,而foundation中是OC的. 二.常用的结构体介绍及简单使用 常用的结构体: (一)NSRang的基本使用

黑马程序员——Java基础--IO(三)

-----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 第三讲 总结(常见代码重要知识点) 一.字节输入流 示例1. package cn.itheima.FileInputStream; import java.io.FileInputStream; import java.io.IOException; /* * 字节输入流读取任意文件 * 创建FileInputStream 对象,传递字符串文件名 * 调用父类方法read读取

黑马程序员-Foundation框架之数组和字典

一.Foundation框架简介 Foundation框架,顾名思义就是基础框架.基础框架上的类都是与用户界面无关的,为所有的程序开发提供一个基础.OC的基础框架常用的类包括:数组,字典,数字,字符串等以及它们的子类.要使用这个框架需要在引入头文件#import <Foundation/Foundation.h> 二.数组 NSArray类以及它的子类NSMutableArray,一个是不可变数组,一个是可变数组.下面通过代码来看一下它的一些基本的用法. 1 #import <Found

黑马程序员【两种Ajax方法】

两种Ajax方法 Ajax是一种用于快速创建动态网页的技术,他通过在后台与服务器进行少量的数据交换,可以实现网页的异步更新,不需要像传统网页那样重新加载页面也可以做到对网页的某部分作出更新,现在这项技术已经被人们广泛应用,而对于一些对Web的了解还不是很深入的初学者,Ajax依然带着一层神秘的难懂的色彩,今天就在这里给大家以简单的方式解读一下Ajax的实现步骤和原理,并且给大家两种实现Ajax的方法,js和jquery. 首先ajax其实就是js+xml的技术,前端的表现就是一段js代码.要使用

黑马程序员——Foundation框架常用类(NSDate)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 简介 NSDate:用于保存时间值的一个OC类,同时提供了一些方法来处理一些与时间相关的事.NSDate对象用来表示一个具体的时间点.NSDate是一个类簇,我们所使用的NSDate对象,都是NSDate的私有子类的实体.NSDate存储的是GMT时间,使用的时候会根据 当前应用 指定的 时区 进行时间上的增减,以供计算或显示. NSDate 1.时间对象的基本使用 //第一种创建方式(里面存储