label的 outlet 关键字通常都是 weak,因为需要它一直在 view 里显示。 strong 会告诉编译器怎么管理内存 读取变量只能在 getter 和 setter 函数里进行,不要在代码其他地方做NSMutableArray 接受的是对象,而数字int、double 是字符不是对象,这是需要转换,用NSNumber, numberWithInt 或 numberWithDouble。数组在创建的时候里边是 nil,但是我们并不希望这样,所以要给它初始化,用 init。初始化最好的位置是在它的 getter 函数里,用 if 语句,如果为 nil 则初始化 synthesize 只有一个变量指针,需要我们自己手动分配空间
一、ios结构1.core os:bsd sokets2.core service:net services file access sqlite3.media多媒体:pdf opengl4.cocoa touch:multi-touch alerts core motion web view
MVC and Introduction to Objective-CIOS layer-Cocoa Touch、Media、Core Services、Core OSMVC——Model = What your application is (but not how it is displayed)model阵营是你的应用是做什么的Controller = How your Model is presented to the user (UI logic)Controller阵营是你的model如何展现在用户面前,控制如何在UI上展现modelView = Your Controller's minionsview是Controller的仆人,view就是controller使用的工具controller利用这些通用view来做model需要做的事,view应该是很通用的,利用通用的view来理解和使用这些功能。controller向model发消息是100%被允许的。也是用了把model展现在屏幕上的,有完全的访问权。controller是把model显示在屏幕上,它可以对view做任何事。(Controllers can also talk directly to their View)outlet是一个表达式用来表示controller和view通信的一个属性。我们要在controller里创建outlets传到view中去。The Model and View should never speak to each other.因为model和用户交互界面无关。view(通用的)和controller(详细控制如何在屏幕展现model)之间的通信的是不可见的。view向controller通信的方法,有结构的方法,一个被称为target action,就是controller自己画一个target,然后把一个action交给它的view。The Controller sets itself as the View's delegate.controller把自己设为委托。delegation是另一个view和controller通信的方法。view只是一个平面,用来显示数据,一个显示信息的平台.Controllers are almost always that data source (not Model).类似地,view会有一个数据源的设置,controller会回应数据源。注意,数据源的delegation永远是controller,或者是controller指定的第三方,但不可能是model。Controllers interpret/format Model information for the View。controller的工作是把model的信息传达给view,响应所有的delegation。model是ui独立的,不能向controller发话。controller的工作来用view显示model。strong:表示保存这个指针对象的内存直到结束使用。weak:表示如果没人在用这个指针了,那就设为nil。所有的property初始值都是0.obj-c比较特殊的一点是:如果你发送消息给nil,does nothing。@synthesize 只为property变量分配一个指针空间,还是需要调用setter来设置(初始化)。self是个指向自己的指针,[self topspeed];[self topspeed]和self.topspeed是一样的。等号的两边都可以用.号,等号左边的.表示调用setter,右边表示getter。
只读属性: @property (readonly) TYPE propertyName
core data is ...
注意要点:1、当复制粘贴button的时候,会连同事件一起复制。意味着所有的button响应到同一事件。
学习的先决条件: 面向对象编程 至少有过2~3个面向对象的程序基础ios分为4层: core OS: Unix 核心,包括网络、socket、安全机制,大部分的api是c语言实现的。 Core Service:集合,网络,字典、线程等对操作系统的分装 Media: 声音、图片,图形引擎等 Cocoa Touch: 多点触控、web视图、定位、图片选择器、控件、相机等 开发工具:xcode4 语言:objective C框架:类库设计策略:MVC Obejctive C@nonatomic 表示是线程不安全的@synthesize 声明一个属性