Objct-CとSwiftの違い
1960 ワード
NSString:copy Block:strong
NSObject
1.変数/定数
2.関数
3.タイプ別名
4.クローズ
5.拡張
6.協議
7.コンパイル前処理
8.サードパーティ製フレーム
swiftにはSnapKitが使われています.OCではMasonryを使います.swift奥:Alamofire,OC奥:AENetworking
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