【iOS学习】七、Foundation框架学习

什么是框架?
框架是众多API的集合,是许多类、方法、函数、文档按照一定逻辑组织起来的集合,能够让程序开发变得更容易。
Foundation框架是其他框架的基础。
1、NSRange

NSRange r = NSMakeRange(2 , 4);
// 应用举例
#import <Foundation/Foundation.h>
int main(){
NSString *str = "i love you";
NSRange range = [str rangeOfString @"love"];
NSLog(@"loc = %ld, length = %ld",range.location,range.length);
}
// 输出结果为:2 4

2、Point、Size、Rect

CGPoint p1 = NSMakePoint(10 , 20);
NSPoint p2 = CGPointMake(10 , 20);
CGRect r1 = CGRectMake(0 , 0, 100 , 50);

3、NSString

NSString *s1 = @"123sad";
NSString *s2 = [[NSString alloc] initWithFormat:@"my age is %d",10];
// 将C语言字符串转换为OC字符串
NSString *s3 = [[NSString alloc]initWithUTF8String:"asd"];
// 将OC字符串转换为C语言字符串
const char *cs = [s3 UTF8String];
// 读取文档中的内容
NSString *s4 = [[NSString alloc] initWithContentsOfFile:@"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil];

// URL:资源路径
// 协议头://路径
// file://
// ftp://
// http://
NSURL *url = [[NSURL alloc] initWithString:@"http://www.baidu.com"];
NSString *s5 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

// 将字符串写入文档
[@"hello" writeToFile:@"/Users/apple/Desktop/1.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];

4、NSMultableString

NSMutableString *s1 = [[NSMutableString alloc]initWithFormat:@"my age is 10"];
// 拼接字符串
[s1 appendString:@"11 12"];
// 删除固定位置、长度字符串
[s1 deleteCharactersInRange:NSMakeRange(4, 2)];
// 删除某个特定字符串
NSRange range = [s1 rangeOfString:@"is"];// 获取字符串位置、长度
[s1 deleteCharactersInRange:range];

5、NSArray
1>NSArray的创建

NSArray *array1 = [NSArray arrayWithObjects:@"qwe",@"asd",@"123" ,nil];
// 快速创建一个NSArray对象(不可用于可变数组的创建)
NSArray *array2 = @[@"qwe",@"asd",@"123"];

2>NSArray元素个数

NSUInteger num2 = array2.count;

3>NSArray中元素的访问

NSLog(@"%@",array2 objectAtIndex:1);
NSLog(@"%@",array2[0]);

4>NSArray数组遍历

// 1
for (id obj in array2) {
    // 获取元素位置
    NSUInteger i = [array2 objectAtIndex:obj];
    NSLog(@"%d--%@",i,obj);
}
// 2
[array2 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        NSLog(@"%d---%@",idx,obj);
        // 停止遍历
        if (idx == 1)
        {
            *stop = YES;
        }
}];

6、NSMutableArray

// 初始化定义
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"qwe",@"asd", nil];
// 添加元素
[array addObject:@"zxc"];
// 删除全部元素
[array removeAllObjects];
// 删除指定元素
[array delete:@"asd"];
// 删除第n个元素
[array removeObjectAtIndex:2];

7、NSSet(NSMutableSet)

// 初始化定义
NSSet *set = [NSSet setWithObjects:@"qwe",@"asd",@"zxc", nil];
// 随机返回一个元素
NSString *str = [set anyObject];

NSArray与NSSet的比较
1>相同点
* 都是集合,可以存放多个OC对象
* 只能存放OC对象,不能存放非OC对象(基本数据类型:int,char,float,结构体,枚举等)
* 本身都不可变,都有一个可变的子类
2>不同点
*NSArray有顺序,NSSet无序
7、NSDictionary
字典:
key—> value
索引—> 文字内容
存储的东西都是键对值

// 1>直接定义
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"name",@"gary",@"address",@"beijing",@"qq",@"12345678", nil];
// 2>利用数组定义
NSArray *keys = @[@"name",@"address",@"qq"];
NSArray *values = @[@"gary",@"beijing",@"1234567"];
NSDictionary *dict = [NSDictionary dictionaryWithObjects:values forKeys:keys];
// 利用key获取内容
id obj = [dict objectForKey:@"address"];
    NSLog(@"%@",obj);
// 3>快速定义
NSDictionary *dict = @{@"name" : @"gary",@"address" : @"beijing"};
id obj = dict[@"name"];
NSLog(@"%@",obj);
// 4>遍历
// 1利用for循环
NSArray *keys = [dict allKeys];
// 字典是无序的
for (int i=0;i<dict.count;i++)
{
    NSString *obj = dict[keys[i]];
    NSLog(@"%@",obj);
}
// 2利用block
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    NSLog(@"%@--%@",key,obj);
}];

Foundation框架一个常见错误,不小心修改了系统自带头文件,解决办法如下:这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值