黑马程序员_Foundation框架
一、Foundation框架简介
* Foundation框架是其他所有iOS框架的基础
* 要想使用Foundation框架中的数据类型,包含它的主文件即可
#import <Foundation/Foundation.h>
* 框架是由许多类、方法、函数和文档按照一定的逻辑组织起来的集合,以便使程序开发变得更容易。
* 在Mac OS X系统下大约有90多个框架,这些框架可以用来开发应用程序,处理Mac的Address Book结构、刻录CD、播放DVD、使用QuickTime播放电影、歌曲,等等。
* 为所有的程序开发奠定基础的框架称为Foundation框架。它允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组、字典和集合。其他功能包括处理日期和时间、自动化的内存管理、处理基础文件系统、存储(或归档)对象、处理集合数据类型(如点和长方形)。
* Application Kit框架包含广泛的类和方法,他们用来开发交互式图形应用程序,使得开发文本、菜单、工具栏、表、文档、剪切板和窗口之类的过程变得十分简单。
* 在Mac OS X系统中,属于Cocoa总的来说指的是Foundation框架、Application Kit宽假和名为Core Date的第三方框架。
* 术语Cocoa Touch是指Foundation、Core Date和UIKit框架。
二、Foundation文档
* 应该利用存储在系统中的Foundation框架文档。
* 这些文档包含Foundation框架的所有类及其实现的所有方法和函数的描述。
* 可以将Foundation框架文档的URL作为书签添加到浏览器的收藏夹中,这样更方便查找Foundation类的信息。
三、结构体的简单使用
程序示例:
#import <Foundation/Foundation.h>
/*
* NSRang:(location, length)
typedef struct _NSRange {
NSUInteger location; // 位置
NSUInteger length; // 长度
} NSRange;
*
* NSPoint\CGPoint
*
* NSSize\CGSize
*
* NSRect\CGRect
*/
int main()
{
@"I Love OC";
// NSRange r1 = {2, 4}; // 开发中不用
// NSRange r2 = {.location = 2, length = 4}; // 开发中不用
// NSRange r3 = NSMakeRange(2, 4); // 掌握
NSString *str = @"I Love OC";
[str rangeOfString:@"Love"];
// 查找某个字符串在str中的范围
// 如果找不到, length = 0; location = NSNotFound;(-1)
NSRange range = [str rangeOfString:@"Java"];
NSLog (@"loc = %ld, length = %ld", range.location, range.lenth);
return 0;
}
四、字符串的简单使用
代码示例:
#import <Foundation/Foundation.h>
/*
* NSString : 不可变字符串
*
* NSMutableString: 可变字符串
*/
int main()
{
/*
* 1.字符串的创建
*/
NSString *s1 = @"jack";
// NSStirng *s2 = [[NSString alloc] initWithString:@"jack"];
NSString *s3 = [[NSString alloc] initWithFormat:@"age is %d", 10];
// C字符串 ---> OC字符串
NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"];
// OC字符串 ---> C字符串
const char *cs = [s4 UTF8String];
// NSUTF8StringEncoding用到中文就可以用这种编码
NSString *s5 = [[NSString alloc] initWithContentsOfFile:@"/Users/
apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil];
// URL:资源路径
// 协议头://路径
// file://
// ftp://
// http://weibo.com/a.png
// http://www.baidu.com
// NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/apple
/Desktop/1.txt"];
NSURL *url = [NSURl fileURLWithPath: @"/User/apple/Desktop/1.txt"];
NSString *s6 = [[NSString alloc] initWithContentsOfURL:url
encoding:NSUTF8StringEncoding error:nil];
NSLog (@"s6 = \n%@", s6);
return 0;
}
五、NSArray的简单使用
代码示例:
#import <Foundation/Foundation.h>
int main()
{
// OC数组不能存放nil值
// OC数组只能存放OC对象,不能存放非OC对象类型,比如int, struct, enum等
// 这个array永远是空数组
// NSArray *array= [NSArray array];
NSArray *array2 = [NSArray arrayWithObject:@"jack"];
// nil是数组元素结束的标记
NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil];
// [array2 count];
NSLog (@"%d", array2.count);
// 快速创建一个NSArray对象
NSArray *array4 = @[@"jack", @"rose", @"123"];
NSLog (@"%ld", array3.count);
NSLog (@"%@", [array3 objectAtIndex:1]);
NSLog (@"%@", array3[0]);
return 0;
}
六、字典_NSDictionary
代码示例:
#import <Foundation/Foundation.h>
int main()
{
/*
* 字典
*
* key --- > value
* 索引 --- > 文字内容
*
* 里面存储的东西都是键值对
*/
NSArray *keys = @[@"name", @"address"];
NSArray *objects = @[@"jack", @"Beijing"];
NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
id obj = [dict objectForKey:@"address"];
NSLog (@"%@", obj);
NSDictionary *dict = @{@"name": @"jack", @"address" : @"Beijing"};
id obj = [dict objectForKey:@"name"];
NSLog (@"%@", obj);
return 0;
}
七、NSDate
代码示例:
#import <Foundation/Foundation.h>
int main()
{
NSString *time = @"2011\09\10 18:56";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyy/MM/dd HH:mm";
[formatter dateForString:time];
NSLog (@"%@", date);
return 0;
}
void date2string()
{
NSDate *date = [NSDate date];
// 日期格式化类
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// y 年 M 月 d 日
// m 分 s 秒 H (24)时 h (12)时
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *str = [formatter stringFormDate:date];
NSLog (@"%@", str);
}
void use()
{
// 创建一个时间对象
NSDate *date = [NSDate date];
// 打印出的时候是0时区的时间(北京-东B区)
NSLog (@"%@", date);
NSDate *date3 = [NSDate dateWithTimeInterval:5 sinceDate:date];
// 从1970开始走过的秒数
NSTimeInteval seconds = [date2 timeIntervalSince1970];
// [date2 timeIntervalSinceNow];
}