斯坦福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

原文地址:https://www.cnblogs.com/gzoof/p/5436171.html