Skip to Main Content
iOS 编程基础:Swift、Xcode 和Cocoa 入门指南
book

iOS 编程基础:Swift、Xcode 和Cocoa 入门指南

by Matt Neuburg
January 2017
Intermediate to advanced content levelIntermediate to advanced
552 pages
9h 43m
Chinese
China Machine Press
Content preview from iOS 编程基础:Swift、Xcode 和Cocoa 入门指南
522
附录
A
比如,如下代码展示了如何在
Objective-C
中通过提供
red
green
blue
alpha
值来创
UIColor
实例:
UIColor* col = [[UIColor alloc] initWithRed:0.5 green:0.6 blue:0.7 alpha:1];
Objective-C
中,这个初始化器的名字是
initWithRed:green:blue:alpha:
。其声
如下所示:
- (UIColor *)initWithRed:(CGFloat)red green:(CGFloat)green
blue:(CGFloat)blue alpha:(CGFloat)alpha;
简而言之,初始化器方法从外表来看就是个实例方法,与
Objective-C
中的其他实例方
法一样。
不过,
Swift
可以检测到
Objective-C
中的初始化器,因为其名字很特殊,以
init
开头。
因此,
Swift
可以将
Objective-C
初始化器转换为
Swift
初始化器。
这种转换是以一种特殊的方式进行的。与普通方法不同,
Objective-C
初始化器在转换为
Swift
时会将所有参数名作为圆括号中的外部名。同时,第一个参数的外部名会自动缩短:
单词
init
会从第一个参数名的开头去掉,如果存在单词
With
,它也会被去掉。这样,
Swift
中该初始化器的第一个参数的外部名就
red:
。如果外部名与内部名相同,那就
没必要重复使用了。这样,
Swift
会将
Objective-C
initWithRed:green:blue:alpha: ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

Aurélien Géron
Swift 人工智能实战:从基础理论到AI 驱动的应用程序开发

Swift 人工智能实战:从基础理论到AI 驱动的应用程序开发

Mars Geldard, Jonathon Manning, Paris Buttfield-Addison, Tim Nugent

Publisher Resources

ISBN: 9787111556350