ios prepare

打开Terminal,点击xcode-select --install来安装command line tools

4种基本数据类型,int,float,double,char

BOOL类型由预处理器添加的,还有YES, NO这两个是内置值。

@class指令告诉编译器,这是一个类,而不会包含相关头文件,在实现文件里面,就需要包含头文件了,因为编译器需要知道更多信息。

-(BOOL) respondsToSelector: selector 对象能响应selector表示的方法吗?

+(BOOL) instancesRespondToSelector: selector 某个类的实例能响应selector表示的方法吗?

安装homebrew:

1. 先下载XCode,因为命令行工具在安装homebrew的时候要用到

2. 安装了XCode之后,通过命令xcode-select --install 安装命令行工具

3. 

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

先下载homebrew,再安装

4. 安装完成后brew help查看帮助

5. 立即使用brew doctor查看系统应用程序的安装问题,是否有的过期了等等。

objective-c的category和extension区别

匿名的category就是extension,可以添加实例变量和属性,但是在命名的category里面不能添加实例变量和属性。

extension里面的方法是私有的

category会覆盖该类的方法,如果同名,可能再也不能调用原来的方法了,而且category会影响派生。总之,使用category要小心。

id <Drawing> currentObject;

这句告诉编译器,currentObject引用的变量实现了Drawing这个协议,这么看来,objective-C中的协议相当与c#的接口概念。

协议也可以扩展,像这样:

@protocol Drawing3D <Drawing>

informal protocol就是不需要实现的category,在OC2.0中可以由@Optional指令代替。

如果使用removeObject从一个数组中删除对象,系统会自动对数组中的每一个对象触发isEqual方法,可以重载这个方法。

使用Block来比较两个对象,这种方法的优点是你不需要写selector,单独写个方法,而是直接就在代码里面写比较的代码,这优点像c#的lamda匿名函数。

NSDictionary也可以由一系列的key/object对进行初始化,语法是

@{ key1:object1, key2:object2, ..., keyn:objectn }

检查是否安装ios sdk:

xcodebuild -showsdks

self, 在一个方法中,self是一个隐含的局部变量,不需要声明它,self自动指向接收消息的对象。

self用来发消息给它本身。

在类方法中也可以使用self,这时候它指的就是类本身。

在objective-c中,返回一个自身类型对象的类方法叫做方便方法,convenience methods,就像NSString类的

stringWithFormat这样的。

每个对象都有一个实例变量叫做isa

当一个属性是一个指针,类型是那种含有mutable子类型的,这种属性应该用copy来修饰。

copy方法返回一个immutable NSString对象,这个对象具有和original字符串相同的值。

对subview进行额外的初始化,两个方法,一个是在viewDidLoad,这个只会运行一次;还有一个是viewWillAppear,viewController的方法,在每次出现在屏幕上都会调用。


不同viewcontroller之间通过segue传递数据,这个是有效的


first responder类似于windows下的焦点概念,focus

属性观察者

didSet

前往某个目录:

Command + Shift + G

guard let

1>guard letif let刚好相反,guard let守护一定有值。如果没有,直接返回。

2> 通常判断是否有值之后,会做具体的逻辑实现,通常代码多

添加一个属性观察者property observer

property injection

trailing closure

尾随必报

awakeFromNib

if case let

guard case let

If a closure is passed as an argument to a function and it is invoked after the function returns, the closure is escaping.

try? 如果由异常跑出,返回nil

try?会将错误转换为可选值,当调用try?+函数或方法语句时候,如果函数或方法抛出错误,程序不会发崩溃,而返回一个nil,如果没有抛出错误则返回可选值。

显示所有hidden文件:

defaults write com.apple.finder AppleShowAllFiles YES

隐藏:

defaults write com.apple.finder AppleShowAllFiles NO

在objective-c中,不需要检查对象指针是否为nil,因为对nil对象方法的调用仅仅被忽略,而不会抛出异常,不会导致程序crash。

NSLog打印任何类型的变量,格式字符串%@

objective-c保留了c语言的关键字,除此之外的关键字都有@前缀

对于一个有Mutable子类的类对象指针,例如NSString*, 申明属性的时候,需要copy来修饰。

一英寸72个点

动画效果:170页,还没有看


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

novodexx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值