Objct-C與Swift的區(qū)別

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 {
    //必須通過對象調用: 成員方法
    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

    //函數(shù)頭部(函數(shù)聲明)
    //-: 成員方法
    //+: 類方法
    //函數(shù)頭部的所有類型,必須放圓括號內
    //每個冒號對應一個參數(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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容