程序员

在学习swift的一些笔记(三)

objective-c与swift的万能指针id


在objective-c中id的简单使用:

   + (instancetype)arrayWithObject:(id)anObject;    

   - (id)objectAtIndex:(NSUInteger)index;

最简单的例子,id代表能指向任意类型的指针

在swift中id的简单使用:

AnyObject 几乎等同于OC中的id

@objc protocol AnyObject {
}

是一个隐式协议大家都遵守它

swift的指定构造器和便利构造器


指定构造器: 每一个类都必须拥有至少一个指定构造器, 一个指定构造器将初始化类中提供的所有属性,并根据父类链往上调用父类的构造器来实现父类的初始化。

便利构造器: 便利构造器是一种快速创建对象的方式。它本质上是把初始化方法做了一次封装,方便外界使用,在方法名前加入 convenience

objective-c与swift数组的简单使用


在objective-c中数组的简单使用:

分类:NSArray (NSArrayCreation)

   // 建立一个空数组
   + (instancetype)array;

    NSArray *array = [NSArray array];

   // 简写形式
    NSArray *arr = @[];

   //  建立一个拥有单个元素的数组
   + (instancetype)arrayWithObject:(id)anObject;    

    NSArray *array1 = [NSArray arrayWithObject:@"一个参数"];

   //  建立一个拥有单个元素的数组的简写形式
    NSArray *arr1 = @[@"一个参数"];

   // 建立一个拥有多个元素的数组
    + (instancetype)arrayWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;

    NSArray *array2 = [NSArray arrayWithObjects:@"多",@"个",@"参",@"数", nil];

   // 建立一个拥有多个元素的数组的简写形式
    NSArray *arr2 = @[@"多",@"个",@"参",@"数"];

以上的例子均为不可变数组,数组所储存的元素为对象,数组一旦决定元素个数不可添加或删除.

也可以通过数组元素下标访问到数组元素所对应的地址改改变地址内所储存的值

在swift中数组的简单使用:

     // 实例化一个空数组
     NSArray();

    // 简写
    let array = [];

    // 建立一个拥有一个元素的数组
    convenience init(object anObject: AnyObject)

    // 例子
    NSArray(object: "3");

    // 简写
    let array = ["3"];

    // 建立一个拥有多个元素的数组
    convenience init(objects elements: AnyObject...)

    // 例子
    NSArray(objects: "3","2","1")

    // 简写
    var arr = [1,2,3,4];

基本同OC没有太大的区别,只是在OC的类方法,以及swift的特殊构造器写法有一些区别.