Foundation构架

一Foundation简介
Foundation—基础框架。框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础。Foundation框架中的类都是以NS为前缀(Next Step的缩写)
二Foundation常用类示例
1)NSString类
字符串比较函数:compare 它区分大小写

//示例代码
NSString a = @"abc";
NSString b = @"acd";
NSComparisonResult  s = [a compare:b];

前后缀:hasPrefix hasSuffix

//示例代码
NSString a = @"www.baidu.com";
NSString b = @"xing.jpg";
if ([a hasPrefix:@"www."])//返回BOOL值
    NSLog(@"YES");
else
    NSLog(@"NO");
if([b hasSuffix:@".jpg"])//返回BOOL值
    NSLog(@"YES");
else
    NSLog(@"NO");

字符串查找:rangeOfString 查找字符串首次出现的位置

NSString a = @"www.baidu.com";
NSString b = @"baidu";
NSRange range = [a rangeOfString:b];
NSLog(@"%lu,%lu",range.location,range.lenth);

字符串截取和替换:substringFromIndex 从index处截取到最后(包含index位置)
substringToIndxe 从头截取到index这个位置(不包含index位置)
substringWithRange //截取一个范围的字符串
stringByReplacingOcurrenceOfString: a withString b
//查找a并将a替换成b
获取每个字符串的字符:characterAtIndex: //获取在index处的字符

NSString *string = @"abcdefg";
unsigned char c ;
for( int i = 0 ;i < string.length; i ++)
{
    c = [string characterAtIndex:i];
    printf("%c\t",c);
}

将字符串换成基本数据类型:intValue,floatValue,doubleValue

NSString *num = @"12";
int number = [num intValue];
NSLog(@"%d",number);

将C字符串转换成OC字符串:stringWithUTF8String

char *s = "abc";
NSString *str = [NSString stringWithUTF8String:s];
NSLog(@"%@",str);

将OC字符串转换成C字符串:UTF8String

NSString *str = @"abc";
char *s = [str UTF8String];
NSLog(@"%s",s);

可变字符串NSMutableString: 占用的空间和位置都可以改变
初始化:stringWithFormat: //用字符串进行格式化
appendString: //在尾部附加字符串
NSMutableString string //创建空可以字符串

NSMuatbleString *a = [NSMuatbleString stringWithForamt:@"abc"];
[a appendString:@"def"];
NSLog(@"%@",a);

可变字符串其它功能:

deleteCharactersInRange: //删除某一范围的字符串
insertString:a AtIndex: b //在索引位置b处插入字符串a
replaceCharactersInRange:a withString :b//将a范围的字符串用b替换

2)NSArray类
创建数组方法

NSArray *a1=[NSArray array]; //空数组
NSArray *a2=[NSArray arrayWithObject:@"abc"];//以一个对象填充数组
NSArray *a3=[NSArray arrayWithObjects:@"abc",@"def",nil];//以多个对象填充数组
NSArray *a4=[[NSArray alloc] initWithObjects:@"1",@"w",nil];
NSArray *a5=[NSArray arrayWithArry:a4];//以数组填充数组

数组遍历
1 是通过下标
2 是快速枚举

for(NSString *a int arr)
{
    NSLog(@"%@",a);
}

3 通过block

[arr enumerateObjectsWithBlock:^(id obj,NSUIteger idx,BOOL *stop)]
{
    NSLog("id = %ld,obj = %@",idx,obj);
}

其它功能:
arr writeToFile:path atomically: //将数组arr的内容写到path路径的文件中
arrayWithContensOfFile:path //将路径中的文件写到数组中

可变数组NSMuableArray
创建

NSMuableArray *a1 = [NSMuableArray array];
NSMuableArray *a2 = [NSMuableArray arrayWithObject:@"abc"];
NSMuableArray *a3 = [NSMuableArray arrayWithObjects:@"abc",@"def",nil];
NSMuableArray *a4 = [NSMuableArray arrayWithCapacity:6];

NSMuableArray 增删改查
insertObject: a AtIndex: b //在b位置插入a
removeObject:a //移除a
replaceWithObjectAtIndex: a withObject:b //用b将a替换
containsObject:a // 数组中是否包含a对象
exchangeWithObjectAtIndex:a withObjectAtIndex:b//a和了互换
3)NSDictionary类
通过 一个key,找到相应 的value;
创建对象

NSDictionary *d1 = [NSDictionary dictionary];
NSDictionary *d2 = [NSDictionary dictionaryWithObject:@"1" forKey:@"2"];
NSDictionary *d3 = [NSDictionary dictionaryWithObjectAndKeys:@"name1",@"1",@"name2",@"2",nil];
NSDictionary *d4 = @{@"1":@"name1",@"2":@"name2"};

NSLog(@"%d",d4.count);//输出字典长度
NSString *str = [d4 objectWithKey:@"1"];//找到对应key的value
for(NSString *str1 in d4)//遍历字典
{
NSLog(@"key = %d,value = %@",str1,[d4 objectWithKey:key]);  
}

//通过block遍历字典
[d4 enumerateObjectsWithBlock:^(id obj,NSUIteger idx,BOOL *stop)]
{
    NSLog("%@ = %@",idx,obj);
}

字典同样有文件操作,它类似array的文件操作。
写文件和array的名一样
读文件dictionaryWithContentsOfFile

NSMutableDictionary

//创建
NSMutableDictionary *d1 = [NSMutableDictionary dictionary];NSMutableDictionary *d2 = [NSMutableDictionary dictionaryWithCapacity:5];

//NSMutableDictionary 增删改查
setObject:a forKey:b //修改值,增加值
removeObjectForKey:a //根据a 删除value
containsObject:a //查找

4)NSFileManager文件管理类

NSFileManager *fm = [NSFileManager defaultManager];
BOOL isYes = [fm fileExistsAtPath:@"//Users//Desktop//a.txt"];//判断是否是文件或目录
BOOL isDir;
BOOL isYes = [fm fileExistsAtPath:@"//Users//Desktop" isDirectory:&isDir]; //判断 是否是目录
isYes = [fm isReadableFileAtPath:@"//Users//Desktop//a.txt" ];//判断是否可读
isYes = [fm isWritableFileAtPath:@"//Users//Desktop//a.txt" ];//判断是否可写
isYes = [fm isDeletableFileAtPath:@"//Users//Desktop//a.txt" ];//判断是否可删除
Dictionary *dic  = [fm attributesOfItemAtPath:@"//Users//Desktop"];/获取文件属性
NSArray *arr = [fm subpathsAtPath:@"//Users//Desktop"];//获取本目录及子目录
NSArray *arr1 = [fm contentsOfDirectoryAtPath:@"//Users//Desktop"];//获取本目录

5)NSNumber类
它是OC中处理数值类型的一个类

    int a = 10;
    float c = 3.23f;
    double d = 2.34;
     NSNumber *intObj = [NSNumber numberWithInt:a];//int  a-->obj
     NSNumber *floatObj = [NSNumber numberWithFloat:f1];//float c -->obj
     NSNumber *dObj = [NSNumber numberWithDouble:d];//double d -->obj

5)NSValue类
将结构体转换为对象

    CGPoint p1 = CGPointMake(20, 20);
    NSMutableArray *arr = [NSMutableArray array];
    NSValue *pointVal = [NSValue valueWithPoint:p1];//p1-->obj

6)NSDate类
日期类

NSDate *d1 = [NSDate date];//得到现在时间
NSDateFormatter *formatter = [NSDateFormatter new];
formatter.dateFormat = @"yyyy年MM月dd日 HH:mm:ss"; //格式化显示时间

NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:24];//时间差方法1
formatter.dateFormat = @"yyyy年MM月dd日 HH:mm:ss"; //格式化显示时间


NSDate *zt = [now addTimeInterval:-t];//时间差方法2
formatter.dateFormat = @"yyyy年MM月dd日 HH:mm:ss"; //格式化显示时间

Foundation中类当然不止这些,列举的都是常用的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俯仰一世_1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值