黑马程序员_Foundation框架



黑马程序员_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];
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值