objective-c與swift的萬能指針id
在objective-c中id的簡單使用:
+ (instancetype)arrayWithObject:(id)anObject;
- (id)objectAtIndex:(NSUInteger)index;
最簡單的例子,id代表能指向任意類型的指針
在swift中id的簡單使用:
AnyObject
幾乎等同于OC中的id,可以代表任何class類型的實例
Any
可以表示任何類型,除了方法類型(function types)
@objc protocol AnyObject {
}
是一個隱式協(xié)議大家都遵守它
swift的指定構(gòu)造器和便利構(gòu)造器
指定構(gòu)造器: 每一個類都必須擁有至少一個指定構(gòu)造器, 一個指定構(gòu)造器將初始化類中提供的所有屬性逛裤,并根據(jù)父類鏈往上調(diào)用父類的構(gòu)造器來實現(xiàn)父類的初始化砰奕。
便利構(gòu)造器: 便利構(gòu)造器是一種快速創(chuàng)建對象的方式。它本質(zhì)上是把初始化方法做了一次封裝趴樱,方便外界使用,在方法名前加入 convenience
objective-c與swift數(shù)組的簡單使用
在objective-c中數(shù)組的簡單使用:
分類:NSArray (NSArrayCreation)
// 建立一個空數(shù)組
+ (instancetype)array;
NSArray *array = [NSArray array];
// 簡寫形式
NSArray *arr = @[];
// 建立一個擁有單個元素的數(shù)組
+ (instancetype)arrayWithObject:(id)anObject;
NSArray *array1 = [NSArray arrayWithObject:@"一個參數(shù)"];
// 建立一個擁有單個元素的數(shù)組的簡寫形式
NSArray *arr1 = @[@"一個參數(shù)"];
// 建立一個擁有多個元素的數(shù)組
+ (instancetype)arrayWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;
NSArray *array2 = [NSArray arrayWithObjects:@"多",@"個",@"參",@"數(shù)", nil];
// 建立一個擁有多個元素的數(shù)組的簡寫形式
NSArray *arr2 = @[@"多",@"個",@"參",@"數(shù)"];
以上的例子均為不可變數(shù)組,數(shù)組所儲存的元素為對象,數(shù)組一旦決定元素個數(shù)不可添加或刪除.
也可以通過數(shù)組元素下標(biāo)訪問到數(shù)組元素所對應(yīng)的地址改改變地址內(nèi)所儲存的值
在swift中數(shù)組的簡單使用:
// 實例化一個空數(shù)組
NSArray();
// 簡寫
let array = [];
// 建立一個擁有一個元素的數(shù)組
convenience init(object anObject: AnyObject)
// 例子
NSArray(object: "3");
// 簡寫
let array = ["3"];
// 建立一個擁有多個元素的數(shù)組
convenience init(objects elements: AnyObject...)
// 例子
NSArray(objects: "3","2","1")
// 簡寫
var arr = [1,2,3,4];
基本同OC沒有太大的區(qū)別,只是在OC的類方法,以及swift的特殊構(gòu)造器寫法有一些區(qū)別.