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. 函數(shù)
fun add(a: Int, b: Int) -> Int{
return a + b
}
class A {
//必須通過對象調(diào)用: 成員方法
fun add(a: Int, b: Int) -> Int {
return a + b
}
//必須通過類名調(diào)用: 類方法
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
}
//類內(nèi)
@interface A: NSObject
//函數(shù)頭部(函數(shù)聲明)
//-: 成員方法
//+: 類方法
//函數(shù)頭部的所有類型早抠,必須放圓括號內(nèi)
//每個冒號對應一個參數(shù)
- (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 {
}
//給協(xié)議添加默認方法實現(xiàn)
extension UITableViewDelegate {
}
//oc
//Category
@interface NSObject (xxxx)
@end
@implementation NSObject (xxxx)
@end
//Extension
//只能添加變量,并且這些變量只能在原始類中使用
//沒有實現(xiàn)
@interface NSObject ()
@end
6. 協(xié)議
//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