斯坦福iOS---CS193
Tools:Xcode
Language:Objective-C
Frameworks:任何像这样的大系统一般都会将对象组到库中,在iOS中我们称之为框架
主要先学习的两个框架,一个是Foundation框架,所有的核心服务都在这里例如数组和字典
还有就是UIKit按钮和滑动条,还有Core Data 面向对象的数据库,还有Map Kit地图
Design Strategies:MVC 一种设计模式 Model View Controller也就是一种将应用中所有的类组织起来的策略
所有的类被分成三块,模型是一些数据和数据逻辑的实现,控制器控制模型如何呈现在屏幕上,而视图就是”仆从“是控制器要使用的类,视图中的东西会被用于构建UI
控制器可以不受限制的访问模型,从控制器到视图,通信也是不受限的,且视图是控制器的“仆人”
模型和视图是不能通信的,因为模型是完全独立于UI的,且视图对象本质上是UI对象,它们是通用的。
视图到控制器的通信方式 有一种盲的 简单的 结构化的方式让视图能够同控制器通信 action 例如给按钮添加target
还有一种复杂的 will did 或者协议(我们进行委托的方式 盲的通信)delegate
视图不应该“拥有”它们所显示的数据,数据不应该是它们内部的属性,数据是数据
视图通过控制器从模型中获取数据的方式 这就是盲的结构化方式 data source
控制器的工作是为视图解释并格式化提供模型数据
电台 Notification&KVO通知 如果模型发生了变化,可以通过键值来告诉控制器
一个MVC可以控制另一个MVC作为视图内容
.h是公共API,是类中你希望具有公共性质,让其他人能够调用的方法,需要指定父类
@interface Name:NSObject
@property (strong)NSString *contents;//用@property进行属性声明时 setter和getter会为我们写好
@end
所有对象都在堆(分配闲置内存的地方)中,且我们有指针指向它们,Objective-C会为你进行分配内存也会进行释放内存。
通过strong还是weeklai判定何时释放,属性可以是强的,也可以是弱的,所有指针属性要么强要么弱,因为Objective-C需要知道怎么处理内存和堆
strong是
.m是私有API以及你所有的实现,也可以进行声明私有的属性和方法
@interface Name()
@end
@implenentation Name
@end