GCD信号量[简记]

简单记录一下GCD信号量的使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
ViewController * vc = [ViewController new];
vc.myBlock = ^{
dispatch_semaphore_signal(semaphore);
NSLog(@"信号量 +1");
};

//延迟2秒执行myBlock
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)),dispatch_get_global_queue(0, 0), ^{
vc.myBlock();
NSLog(@"等待2秒结束");
});

dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
NSLog(@"接收成功");

Read More

Swift学习笔记(五) -- 闭包

通过学习Swift 4.0,总结一下Swift相对于Objective-C的一些新特征。

闭包

  • 闭包是一种函数的简写形式,省去函数名,把参数和返回值放入花括号内。
  • 使用函数,对数组排序(代码頽长)
    1
    2
    3
    4
    5
    6
    7
    var city = ["Beijing","Shanghai","Guangzhou"]

    func daoxu(a:String ,b:String) ->Bool
    {
    return a > b
    }
    var city2 = city.sorted(by: daoxu)

Read More

Swift学习笔记(四) -- 函数

通过学习Swift 4.0,总结一下Swift相对于Objective-C的一些新特征。

函数

  • 函数是一段代码块和代码块名称组合,用于执行特定的任务
  • 使用函数叫”调用(call)”
  • 就像公式一样,使用函数可以提供参数
  • 函数调用结果叫 返回值
  • 函数的类型,包含:参数类型 和 返回值类型
  • 定义一个函数
    1
    2
    3
    4
    5
    6
    7
    8
    9
    func add(a: Int, b: Int) -> Int
    {
    return a+b
    }

    代码解读:
    - 定义一个函数名为:add的函数;
    - 参数为Int类型的a和b;
    - 返回值类型:Int

Read More

Swift学习笔记(一) -- 元组Tuple

通过学习Swift 4.0,总结一下Swift相对于Objective-C的一些新特征。

元组,一组变量的组合,和OC中NSArray类似。

不同点:元组内的元素类型可以多样化,组内各元素可以为不同种类型(例:String和Int的组合形式)。

  1. 定义一个元组

    1
    2
    3
    4
    var tempTuple = (1,"2",3)

    //取第0个元素的值
    print(tempTuple.0) //输出: 1
  2. 组合形式定义多个变量

    1
    2
    3
    var (x,y) = (1,2)

    print(x) //输出: 1
  3. 元组内变量(前缀)

    1
    2
    3
    var gf = (age:22,kg:46,h:165,name:"范冰冰")

    print(gf.name) //输出: 范冰冰