NSString:copy
Block:strong
NSObject
1. 变量/常量
//swift
var i: Int = 0
let c: Int = 0
//oc/c/c++
int i = 0;
const int c = 0;//constant
2. 函数
fun add(a: Int, b: Int) -> Int{
return a + b
}
class A {
//必须通过对象调用: 成员方法
fun add(a: Int, b: Int) -> Int {
return a + b
}
//必须通过类名调用: 类方法
static add(a: Int, b: Int) -> Int {
return a + b
}
}
//c/c++
int add(int a, int b){
return a + b
}
//oc
//类外: 完全等同c/c++
int add(int a, int b){
return a + b
}
//类内
@interface A: NSObject
//函数头部(函数声明)
//-: 成员方法
//+: 类方法
//函数头部的所有类型,必须放圆括号内
//每个冒号对应一个参数
- (int)add: (int)a and: (int)b;
+ (int)add: (int)a and: (int)b;
@end
@implementation A
- (int)add: (int)a and: (int)b {
return a + b;
}
+ (int)add: (int)a and: (int)b {
return a + b;
}
@end
3. 类型别名
//swift
typealias MyInt = Int
//oc/c/c++
typedef int MyInt;
4. 闭包
//swift
typealias AddClosure = (Int, Int) -> Int
//oc
//Block: c语言级别
int (^add)(int, int);
5. 扩展
//swift
extension NSObject {
}
//给协议添加默认方法实现
extension UITableViewDelegate {
}
//oc
//Category
@interface NSObject (xxxx)
@end
@implementation NSObject (xxxx)
@end
//Extension
//只能添加变量,并且这些变量只能在原始类中使用
//没有实现
@interface NSObject ()
@end
6. 协议
//swift
protocol Protocol {
}
@protocol Protocol
//@required
- (void)add;
@opional
- (void)sub;
@end
7. 编译预处理
//swift
#if true
#endif
//oc/c/c++
#if 1
#endif
8. 第三方框架
swift里面用SnapKit;OC里面用Masonry。
swift里面:Alamofire,OC里面:AENetworking