【黑马程序员】Foundation框架(二)
来源:互联网 发布:微信商城网站源码php 编辑:程序博客网 时间:2024/05/19 05:31
------<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;}NSRangeNSRange用来表示一个范围,通常是字符串里的字符范围和数组里的元素范围
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;}
0 0
- 黑马程序员-----Foundation框架续(二)
- 【黑马程序员】Foundation框架(二)
- 黑马程序员——IOS基础(Foundation框架二)
- 黑马程序员——foundation框架(二)
- 黑马程序员------[Foundation]Foundation框架
- 黑马程序员-Foundation框架
- 黑马程序员-----Foundation框架
- 黑马程序员---Foundation框架
- 黑马程序员 Foundation框架
- 黑马程序员---Foundation框架
- 【黑马程序员】-Foundation框架
- 黑马程序员--Foundation框架
- 黑马程序员-----Foundation框架续(一)
- 黑马程序员-10Foundation框架(下)
- 黑马程序员 Foundation框架(续)
- 【黑马程序员】Foundation框架(一)
- 【黑马程序员】Foundation框架(三)
- 【黑马程序员】Foundation框架(四)
- QT获取系统时间,以及设置日期格式
- FZU 2150 Fire Game(dfs+bfs)
- swustoj---258将军的书
- 让LwIP拥有PING其他设备的能力
- 数学建模Word排版——细节决定成败
- 【黑马程序员】Foundation框架(二)
- 机器人操作系统ROS教程(三) ROS新手教程
- 0. 几个GPL授权问题
- 关于iOS遮罩的实现与透明度为0时自己的理解
- HDU 5611 Baby Ming and phone number(模拟)
- 83. Remove Duplicates from Sorted List && 82. Remove Duplicates from Sorted List II
- SAXReader通配符搜索XML节点
- 【quick-cocos2d-x】Lua 语言基础
- eclipse 关于The APR based Apache Tomcat Native library警告