通过Swift学习Objective-C:变量、类、方法和属性
学习了一段时间Swift,做了两个小App感觉都还不错。但是由于大量的参考资料、第三方库都用的Objective-C,不学OC语法是不可能的。
根据系列教程Learn Swift From Objective-C整理了一下教程,供先学Swift,再想了解Objective-C语法的小伙伴。
变量和常数
变量定义
Objective-C
1 | int highScore; |
Swift
1 | var highScore: Int |
变量赋值
Objective-C
1 | highScore = 1000; |
Swift
1 | highScore = 1000 |
常量赋值
Objective-C
1 | NSString *const skyColor = @"Blue"; |
Swift
1 | let skyColor = "Blue" |
类
定义类
Objective-C中类分需要在两个文件中表示,一个是.h文件一个是.m文件
其中.h文件存放类、函数声明,类声明用关键字@interface
@end来声明,如
1 | @interface CustomClass : NSObject |
.m文件存放类的具体实现,类实现使用关键字@implementation @end来实现,如
1 | @implementation CustomClass |
Swift
1 | class CustomClass { |
创建新的类(Creating a new class instance)
Objective-C
1 | CustomClass *instance = [[CustomClass alloc] init]; //第一次需要用init函数初始化 |
Swift
1 | var instance = CustomClass() |
子类
Objective-C
.h函数声明文件(header file)中
1 | @interface SpecificCar : Car |
Swift
1 | class SpecificCar : Car { |
方法(Methods)
声明方法
Objective-C的方法跟类一样分需要在两个文件中表示
其中.h文件存放方法声明
1 | - (int) getOdometerReading; |
.m文件存放方法的具体实现
1 | - (int) getOdometerReading |
Swift
1 | func getOdometerReading() -> Int { |
调用方法(函数)
Objective-C
1 | SpecificCar *myCar = [[SpecificCar alloc] init];//首次调用需要创建并初始化 |
Swift
1 | swiftvar myCar = SpecificCar() |
声明方法(带参数)
Objective-C
1 | - (void)changeEngineOil:(int)oil transmissionFluid:(int)fluid |
Swift
1 | func changeEngineOil(oil:Int, transmissionFluid:Int) |
调用方法(带参数)
Objective-C
1 | [myCar changeEngineOil:10 transmissionFluid:10]; |
Swift
1 | myCar.changeEngineOil(10, transmissionFluid:10); |
重载(Override
Objective-C
1 | - (void)someMethod |
Swift
1 | override func someMethod() |
属性
声明属性
Objective-C .m文件
1 | @interface SpecificCar () |
Swift
1 | class Specific:Car { |
Overriding the getter and setter
Objective-C
1 | - (void)setTransmission:(NSString *)transmission |
Swift
1 | var transmission: String { |