[黑马程序员]15[Foundation框架] Foundation部分学习笔记小结
来源:互联网 发布:c语言经典第五版pdf 编辑:程序博客网 时间:2024/05/19 18:17
------- android培训、java培训、IOS培训、期待与您交流! ----------
Foundation框架] 基本介绍
01. Foundation框架基本
正如其名,Foundation框架是其他所有ios框架的基础
Foundation框架包含了很多开发中常用的数据类型
结构体,枚举,类
要想使用foundation中的数据类型,包含它的主文件即可#import<Foundation/Foundation.h>
Foundation-结构体-01-NSRange// 字符串的起始位置和范围长度
Foundation-03-NSPoint\CGPoint // 表示点的坐标,比如屏幕的触屏点
开发中用CGPoint,因为它跨平台
int main()
{
// NSRange(location, length) //字符串的起始位置和范围长度
// NSPoint\CGPoint //表示点的坐标,比如屏幕的触屏点
// NSSize\CGSize // UI元素的尺寸
// NSRect\CGRect //包括CGSize和CGPoint,一个UI元素的位置和尺寸
CGPoint p1 =NSMakePoint(10,10);
NSPoint p2 =CGPointMake(20,20); //最常用
NSSize s1 =CGSizeMake(100,50);
CGSize s2 =NSMakeSize(100,50);
CGRect r1 =CGRectMake(0,0, 100, 50);
// CGPointZero == CGPointMake(0, 0);
CGRect r4 = {CGPointZero,CGSizeMake(100,90)};
CGPointEqualToPoint(p1, p2);// BOOL类型,判断两个点是否相同
CGSizeEqualToSize(s1, s1);// 同上
CGRectEqualToRect(r1, r4);// 同上
// 使用这些函数的前提是添加CoreGraphics框架
// NextStep Foundation
BOOL i =CGRectContainsPoint(CGRectMake(50,40, 100, 50), CGPointMake(130,70));
NSLog(@"%d",i);
NSString *str =NSStringFromPoint(p1);
NSString *str1 =NSStringFromSize(s1);
NSString *str2 =NSStringFromRect(r1);
// NSLog(@"%@",str2);
//
// NSLog(@"%@",str1);
return0;
}
int test()
{
// NSRange(location, length)
// NSPoint\CGPoint
// NSSize\CGSize // UI元素的尺寸
// NSRect\CGRect //
// NSRange(location, length)
// @"i love oc";
//
// location = 2(空格也算一个)
// length = 4
// struct Date {
// int year;
// int month;
// int day;
// };
//
// struct Date d = {2011,9,10};
// @"i love oc"
//
// NSRange r1 = {2,4}; //不用
// NSRange r2 = {.location = 2, .length = 4}; //太麻烦,也不用
// NSRange r3 = NSMakeRange(2, 4); //应该这样定义
//
NSString *str =@"i love oc";
// 查找某个字符串在str中的范围
// 如果找不到,length = 0, location =NSNotFound == -1
NSRange range = [strrangeOfString:@"java"];
NSLog(@"loc=%ld,length=%ld", range.location, range.length);
return 0;
}
02. NSSet,
// NSSet无序存放的类集合
// NSSet和NSArray的对比
// 1>共同点
// *都是集合,都能存放多个OC对象
// *只能存放OC对象,不能存放非OC对象类型
// *本身都不可变,都有一个可变的子类
// 2>不同点
// *NSArray有顺序,NSSet没有顺序
int main()
{
NSMutableSet *s = [NSMutableSetset];
// 添加元素
[s addObject:@"hack"];
// 删除元素
[s removeObject:@"hack"];
return0;
}
// NSSet用的比较少
int main1()
{
NSSet *s = [NSSetset]; // 空的,不能加东西,因为不可变
NSSet *s2 = [NSSetsetWithObjects:@"jack",@"rose",@"tom",@"haha",nil];
// 取东西
NSString *str = [s2anyObject];
NSLog(@"%@",str);
//NSLog(@"%ld",s2.count);
return0;
}
03. NSDictionary,
// 三个类集合里最好用,最灵活的一个
// 字典的遍历
int main()
{
// 字典不允许有相同的key,但允许有相同的value值(object)
// 字典是无序的
NSDictionary *dict =@{@"name" :@"jack", @"qq" :@"234453456",@"address" :@"beijing", @"shouji" :@"136xxxxxx"};
// NSArray *keys = [dict allKeys];
// NSLog(@"%@",keys);
//
// for (int i =0; i<dict.count; i++) {
// NSString *key = keys[i];
// NSString *object = dict[key];
//
// NSLog(@"%@ = %@",key,object);
// }
// 第二种遍历方法 科学好用的方法
[dict enumerateKeysAndObjectsUsingBlock:
^(id key,id obj, BOOL *stop) {
NSLog(@"%@ - %@",key,obj);
//*stop = YES;
}];
return0;
}
// 注意点
int main3()
{
// 讲不可变字典赋值给可变字典,NSDictionary并没有setobject方法
NSMutableDictionary *dict =@{@"name" :@"jack"}; // 错误写法
[dict setObject:@"rose" forKey:@"name"];
return0;
}
// NSMutableDictionary
int main2()
{
NSMutableDictionary *dict = [NSMutableDictionarydictionary];
// 添加键值对
[dict setObject:@"jack" forKey:@"name"];
[dict setObject:@"beijing" forKey:@"address"];
[dict setObject:@"rose" forKey:@"name"];
// 移除键值对
//[dict removeObjectForKey:<#(id)#>];
NSString *str = dict[@"name"];
NSLog(@"%@",str);
// 打印整个字典(键值对)
NSLog(@"%@",dict);
return0;
}
// 基本用法
int main1()
{
// 字典
// key->value
// 索引->文字内容
// 里面储存的东西都是键值对
//NSDictionary *dict = [NSDictionarydictionaryWithObject:@"jack" forKey:@"name"];
// NSArray *keys = @[@"name",@"address"];
// NSArray *objects = @[@"jack",@"北京"];
//
// NSDictionary *dict = [NSDictionary dictionaryWithObjects:objectsforKeys:keys];
// NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
// @"jack",@"name",
// @"beijing",@"address",
// @"1234234234",@"qq",nil];
// xcode的封装,自动生成重复代码
NSDictionary *dict =@{@"name": @"jack", @"address": @"beijing"}; // 字典的标准写法
// id obj = [dict objectForKey:@"address"];
//封装上句
id obj = dict[@"name"];// 封装后写法
NSLog(@"%@",obj);
//dict.count //返回的是键值对的个数
NSLog(@"%ld",dict.count);
return0;
}
04. NSNumber,
// 1.NSNumber
// 把基本数据类型包装成对象
// 之所以能转换包装,是因为继承了NSValue
// 2.NSValue
// 可以包装任何东西
int main()
{
// 将结构体包装成对象
// 结构体->OC对象
CGPoint p =CGPointMake(10,10);
// 将结构体转为value对象
NSValue *value = [NSValuevalueWithPoint:p];
// 将value转为相应结构体
//[value pointValue];
NSArray *array =@[value ];
@"value";
return0;
}
// NSNumber将各种基本数据类型包装成对象
int main2()
{
// @20将20包装成一个NSNumber对象
// 将各种基本数据类型包装成对象
NSArray *array =@[
@{@"name" : @"jack", @"age" : @20},
@{@"name" : @"jack", @"age" : @10.5},
@{@"name" : @"jack", @"age" : @YES},
@{@"name" : @"jack", @"age" : @'A'}
];
// 将age变量包装成NSNumber对象
int age =100;
@(age);// 写@age计算机会把它当关键字
NSNumber *n = [NSNumbernumberWithDouble:10.5];
int d = [ndoubleValue];
// 包装成字符串
int a =20;
NSString *str = [NSStringstringWithFormat:@"%d",a];
NSLog(@"%d",[strintValue]);
return0;
}
05. NSDate
// NSDate一个NSDate对象就可以表现一个时间
//
// 字符串转为时间
int main()
{
NSString *time =@"2011/09/0815:34";
NSDateFormatter *formatter = [[NSDateFormatteralloc] init];
formatter.dateFormat =@"yyyy/MM/ddHH:mm";
NSDate *date = [formatterdateFromString:time];
NSLog(@"%@",date);
return0;
}
// 日期格式化
int main2()
{
NSDate *date = [NSDatedate];
// 日期格式化类
NSDateFormatter *formatter = [[NSDateFormatteralloc] init];
formatter.dateFormat =@"yyyy-MM-ddHH:mm:ss"; // 固定格式,小写hh是12小时制
// @2011-04-21 17:23:45
NSString *str = [formatterstringFromDate:date];
NSLog(@"%@",str);
return0;
}
int main1()
{
// 创建一个时间对象
NSDate *date = [NSDatedate];
// 打印出得时0时区的时间(北京-东8区)
NSLog(@"%@",date);
NSDate *date2 = [NSDatedateWithTimeInterval:5sinceDate:date];
// 从1970开始走过的秒数
NSTimeInterval seconds = [date2timeIntervalSince1970];
//[date2 timeIntervalSinceNow];
NSLog(@"%@",date2);
return0;
}
- [黑马程序员]15[Foundation框架] Foundation部分学习笔记小结
- 黑马程序员- IOS学习笔记-Foundation框架
- 黑马程序员---学习笔记24:Foundation框架
- 黑马程序员------[Foundation]Foundation框架
- 黑马程序员-Foundation-学习笔记
- 黑马程序员-Foundation框架常用类小结
- 黑马程序员--Foundation小结
- 黑马程序员 OC-------Foundation学习小结
- 黑马程序员学习笔记-OC之foundation框架
- 黑马程序员---Objective-C Foundation框架学习笔记之二
- 黑马程序员-IOS学习笔记(十二)Foundation框架
- 黑马程序员-----oc语言学习笔记之foundation框架-NSString
- 黑马程序员——IOS学习笔记(Foundation框架(一))
- 黑马程序员——IOS学习笔记(Foundation框架(二))
- 黑马程序员-Foundation框架
- 黑马程序员-----Foundation框架
- 黑马程序员---Foundation框架
- 黑马程序员 Foundation框架
- Navicat for MySQL and dos 在win7 64 位系统中遇到的问题,以及简单操作
- error while loading shared libraries: libz.so.1
- [黑马程序员]12[OC语言]OC基本语法部分学习笔记总结
- [黑马程序员]13[OC语言]OC三大特性部分学习笔记总结
- [黑马程序员]14[OC语言]OC内存管理部分学习笔记总结
- [黑马程序员]15[Foundation框架] Foundation部分学习笔记小结
- 【Android语音合成TTS】国内主流引擎对比
- [黑马程序员]16[Foundation框架]学习应用,计算学习代码量
- search - binary search/sort tree
- 北京市朝阳区第二中级人民法院服务电话是多少
- Codeforces Round #299 (Div. 1) 解题报告 (AB)
- 【Android语音合成TTS】百度语音接入方法,和使用技巧详解
- 【Android语音合成TTS】云知声离线TTS使用详解
- 你必须知道的25个C#基础概念