------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一、NSURL的使用
1、NSURL的介绍
URL的全称是Uniform Resource Locator是互联网的标准资源地址,互联网上每个资源都有唯一的URL,它包含的消息指出资源的位置。
基本URL包含协议、主机域名、 路径
如: http://www.baidu.com/images/dds.jpg
可以简单认为:URL=协议头://主机域名/路径
常见的URL协议头:
1、http\https:超文本传输协议资源,网络资源
2、ftp:文件传输协议
2、用NSURL读写字符串
传入完整的字符串URL创建:URLWithString方法 NSURL类方法 参数:文件的URL 返回instancetype(NSURL)类型
通过文件路径创建(默认是file协议):fileURLWithPath方法 NSURL类方法 参数:文件路径 返回instancetype(NSURL)类型
二、NSRange的使用
1、NSRange的介绍
NSRange是Foundation框架中常用的结构体,也是结构体的一种别名。
typedef struct _NSRange{
NSUInteger location;
NSUInteger length;
}NSRange
NSRange用来表示一个范围,通常是字符串里的字符范围和数组里的元素范围
NSUInteger的定义:
typedef unsigned int NSInteger;
typedef unsigned long NSUInteger;
其2个成员为:
location:表示该范围的起始位置
length:表现该范围内的长度
2、NSRange的创建和赋值
1)先定义在赋值
NSRange range;
range.location = 2;
range.length = 3;
2)定义的同时赋值
NSRange range ={1,3};
NSRange range2 = {.location = 2,.length = 4};
3)使用NSMakeRange函数
NSRange Range = NSMakeRange(3,4);
三、NSArray的使用
1、NSArray的介绍
NSArray的定义与注意事项
NSArray是OC中的数组类,开发中建议尽量使用NSArray代替C语言中的数组
只能存放任意OC对象,并且是有顺序的。不能存放非OC对象,如int\float\double\char\enum\struct等。
它是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的,不能添加和删除元素。
2、NSArray的创建方法
1)类方法创建
创建空的数组:array方法 NSArray类方法 无参 返回:instancetype类型(id对象类型)
创建并赋值一个元素:arrayWithObject方法 NSArray类方法 参数:Id类型元素 返回:instancetype类型(id对象类型)
创建并赋值多个元素:arrayWithObjects方法 NSArray类方法 参数:Id类型元素(多个) 返回:instancetype类型(id对象类型)*元素之间用“,”分割,最后用nil结束
通过已存在数组来创建新数组:arrayWithArray方法 NSArray类方法 参数:NSArray元素 返回:instancetype类型(id对象类型)
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *arr1 = [NSArray array];
NSArray *arr2 = [NSArray arrayWithObject:@"a"];
NSArray *arr3 = [NSArray arrayWithObjects:@"b",@"c", nil];
NSArray *arr4 = [NSArray arrayWithArray:arr3];
NSLog(@"%@,%@,%@,%@",arr1,arr2,arr3,arr4);
}
return 0;
}
2)对象方法创建
先开辟对象空间后用:initWithObjects方法 NSArray对象方法 参数:参数:Id类型元素(多个) 返回:instancetype类型(id对象类型)*元素之间用“,”分割,最后用nil结束
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *arr5 =[[NSArray alloc]initWithObjects:@"f",@"g", nil];
NSLog(@"%@",arr5);
}
return 0;
}
3、注意事项
1)NSArray直接使用NSLog()作为字符串输出时是小括号括起来
2)NSArray中不能存储nil,因为NSArray认为nil是数组(nil是数组元素结束的标记)。nil是0,0也是基本数据类型,不能放入NSArray
3)NSArray *arr = [NSArray array];这样创建的数组永远都是空的,不能增加元素。
4、NSArray常用方法
获得数组元素的个数:count方法 NSArray对象方法 无参 返回NSUInteger类型(long int类型)
获得指定位置的元素:objectAtIndex方法 NSArray对象方法 参数:指定位置(NSUInteger类型) 返回Id类型
判断是否包含某元素:containsObject方法 NSArray对象方法 参数:判断的NSArray元素 返回BOOL类型
返回最后一个元素:lastObject方法 NSArray对象方法 无参 返回Id类型
返回第一个元素:firstObject方法 NSArray对象方法 无参 返回Id类型
查找指定元素在数组中的位置:indexOfObject方法 NSArray对象方法 参数:指定NSArray元素 返回位置NSUInteger类型(未找到返回-1)
在一定范围内查找指定元素的位置:indexOfObject:inRange方法 NSArray对象方法 参数:指定NSArray元素+范围NSRange类型 返回 返回位置NSUInteger类型(未找到返回-1)
5、NSArray的简写
[NSArray arrayWithObjects:@"a",@"b",nil];可简写为@[@"a",@"b"];
[array objectAtIndex];可简写为array[0];
6、NSArray的遍历方法
1)下标遍历
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];
for (int i= 0; i<3; i++) {
NSLog(@"%@",arr[i]);
}
}
return 0;
}
2)快速遍历
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];
for (NSString *str in arr) {
NSLog(@"%@",str);
}
}
return 0;
}
3)block遍历
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];
[arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"下标%ld 值%@",idx,obj);
}];
}
return 0;
}
7、NSArray读写文件
写入文件:writeToFile:atomically方法 NSArray对象方法 参数:文件存储地址+是否原子性 返回BOOL类型
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];
[arr writeToFile:@"Users/xxxx/Desktop/array.xml" atomically:YES];
}
return 0;
}
读取文件:arrayWithContentsOfFile方法 NSArray类方法 参数:文件地址 返回NSArray类型
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
[NSArray arrayWithContentsOfFile:@"Users/xxxx/Desktop/array.xml"];
}
return 0;
}
8、NSArray与字符串
1)将数组元素连接成字符串:componentsJoinedByString方法 NSArray对象方法 参数:分隔符字符串 返回NSString类型
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];
NSString *str = [arr componentsJoinedByString:@"$"];
NSLog(@"%@",str);
}
return 0;
}
2)字符串分割:componentsSeparateByString方法 NSString对象方法 参数:字符串中有的分割字符 返回NSArry类型
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *str = @"who are you?";
NSArray *arr = [str componentsSeparatedByString:@" "];
NSLog(@"%@",arr);
}
return 0;
}
三、NSMutableArray的使用
1、NSMutableArray介绍
NSMutableArray是NSArray的子类
它两个的区别在于:NSArry是不可变的,一旦初始化完成后,其里面的内容是固定的,不能添加也不能删除。
NSMutableArray是可变的,可以随时添加删除替换元素
2、NSMutableArray的常用方法
1)创建
创建一个空数组:array方法 NSMutableArray类方法 无参 返回NSMutableArray类型
创建长度为5的空数组:initWithCapacity方法 NSMutableArray对象方法 参数:数组长度 返回NSMutableArray类型
创建数组并赋值:arrayWithObjects方法 NSMutableArray类方法 参数:数组元素 返回NSMutableArray类型 *结尾用nil结束
initWithObjects方法 NSMutableArray对象方法 参数:数组元素 返回NSMutableArray类型 *结尾用nil结束
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSMutableArray *arr1 = [NSMutableArray array];
NSMutableArray *arr2 = [[NSMutableArray alloc]initWithCapacity:3];
NSMutableArray *arr3 = [NSMutableArray arrayWithObjects:@"c",@"d",nil];
NSMutableArray *arr4 = [[NSMutableArray alloc]initWithObjects:@"a",@"b", nil];
NSLog(@"%@,%@,%@,%@",arr1,arr2,arr3,arr4);
}
return 0;
}
2)添加
添加一个元素:addObject方法 NSMutableArray对象方法 参数:添加的数组元素 返回void
将其他数组中全部元素添加:addObjectsFromArray方法 NSMutableArray对象方法 参数:其他数组 返回void
在指定位置插入一个元素:insertObject:atIndex方法 NSMutableArray对象方法 参数:添加的元素和位置(NSUInteger类型) 返回void
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *arr = [NSArray arrayWithObjects:@"asd",@"zxc", nil];
NSMutableArray *arr1 = [NSMutableArray array];
[arr1 addObject:@"a"];
[arr1 addObjectsFromArray:arr];
[arr1 insertObject:@"*" atIndex:1];
NSLog(@"%@",arr1);
}
return 0;
}
3)删除
删除最后一个元素:removeLastObject方法 NSMutableArray对象方法 无参 返回void
删除全部元素:removeAllObject方法 NSMutableArray对象方法 无参 返回void
删除指定位置的元素:removeObjectAtIndex方法 NSMutableArray对象方法 参数:位置(NSUInteger类型) 返回void
删除指定元素:removeObject方法 NSMutableArray对象方法 参数:指定元素
删除指定范围内的所有元素:removeObjectsInRange方法 NSMutableArray对象方法 参数:范围(NSRange类型) 返回void
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSMutableArray *arr1 = [NSMutableArray arrayWithObjects:@"dsds",@"xxxc",@"dd", nil];
[arr1 removeLastObject];
[arr1 removeAllObjects];
NSMutableArray *arr2 = [NSMutableArray arrayWithObjects:@"rd",@"23",@"morning",@"good", nil];
[arr2 removeObjectAtIndex:1];
[arr2 removeObject:@"rd"];
NSRange range = {0,1};
[arr2 removeObjectsInRange:range];
NSLog(@"%@,%@",arr1,arr2);
}
return 0;
}
4)替换
用指定元素替换指定位置元素:replaceObjectAtIndex:withObject方法 NSMutableArray对象方法 参数:指定位置+指定元素 返回void
交换两个位置的元素:exchangeObjectAtIndex:withObjectAtIndex方法 NSMutableArray对象方法 参数:位置1+位置2 返回void
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSMutableArray *arr1 = [NSMutableArray arrayWithObjects:@"dsds",@"xxxc",@"dd", nil];
[arr1 replaceObjectAtIndex:0 withObject:@"hello"];
[arr1 exchangeObjectAtIndex:2 withObjectAtIndex:1];
NSLog(@"%@",arr1);
}
return 0;
}