iOS开发——语法OC篇&Block回顾

Block回顾

这里知识简单介绍一下关于Block的语法,如果你觉得这里很简单或者想学习更深入的的使用清查看记者之前写的使用block传值和高级Block使用:

http://www.cnblogs.com/iCocos/p/4534281.html

http://www.cnblogs.com/iCocos/p/4550169.html

http://www.cnblogs.com/iCocos/p/4659878.html

http://www.cnblogs.com/iCocos/p/4655846.html

  • block : block 函数,代码块
  • block 是一个 "特殊" 对象

函数:

  • 1.无返回值无参数
  • 2.无返回值有参数
  • 3.有返回什又有参数

Block:

  • 1.无返回值无参数
  • 2.无返回值有参数
  • 3.有返回什又有参数

无返回值无参数

C语言函数:

1 //无返回值无参数函数
2 void say1(){
3     NSLog(@"say1.....");
4 }
    // 调用函数

    say1();

OC代码块:

 1 //1.无返回值无参数 block
 2
 3 void test1(){
 4
 5     //1.无返回值无参数 block
 6
 7     void (^say1Block)() = ^{
 8
 9         NSLog(@"say1block...");
10
11     };
12
13     // 调用block
14
15     say1Block();
16
17 }

无返回值有参数

C语言函数:

1 //无返回值有参数函数
2
3 void say2(int age){
4
5     NSLog(@"I‘am %d year old!",age);
6
7 }
    //调用
    say2(18);

OC代码块:

 1 // 2.无返回值有参数 block
 2
 3 void test2(){
 4
 5
 6     void (^say2Block)(int) = ^(int age){
 7
 8         NSLog(@"I‘am %d year old!",age);
 9
10     };
11
12
13     say2Block(20);
14
15
16
17 }

有返回值有参数

C语言函数:

1 //有返回值有参数函数
2
3 int sum(int a,int b){
4
5     return a + b;
6
7 }
8
9  

OC代码块:

 1 //3.有返回什又有参数 block
 2
 3 void test3(){
 4
 5       int (^sumBlock)(int,int) = ^(int a,int b){
 6
 7             return a + b;
 8
 9         };
10
11         int result1 = sum(10, 10);
12
13         int result2 = sumBlock(11,11);
14
15         NSLog(@"result1:%d result2:%d",result1,result2);
16
17
18
19         // 对block进行typedef
20
21
22
23         // 对"无返回值" 无参数block 进行重定义
24
25         typedef void (^Say2Block)();
26
27
28
29         Say2Block block = ^{
30
31             NSLog(@"Say2Block ========");
32
33         };
34
35
36
37         block();
38
39 }
时间: 2024-10-05 23:58:19

iOS开发——语法OC篇&Block回顾的相关文章

iOS开发——语法OC篇&Objective-C新特性的总结

Objective-C新特性的总结 1.nonnull nonnull : 标示当前属性不为空,让外界放心用,只做标示用,即使为空,也木有办法    相当于swift里面的 ! 号 @property (nonnull, nonatomic, strong) NSString *name; 2.nullablenullable : 标示当前属性可能为空,让外界使用时注意    相当于swift里面的 ? 号 @property (nullable, nonatomic, strong) NSSt

iOS开发——语法OC篇&BOOL / bool / Boolean / NSCFBoolean

Name Typedef Header True Value False Value BOOL signed char objc.h YES NO bool _Bool (int) stdbool.h true false Boolean unsigned char MacTypes.h TRUE FALSE NSNumber __NSCFBoolean Foundation.h @(YES) @(NO) CFBooleanRef struct CoreFoundation.h kCFBoole

iOS开发——语法OC篇&BOOL / bool / Boolean / NSCFBoolean四者区别

Name Typedef Header True Value False Value BOOL signed char objc.h YES NO bool _Bool (int) stdbool.h true false Boolean unsigned char MacTypes.h TRUE FALSE NSNumber __NSCFBoolean Foundation.h @(YES) @(NO) CFBooleanRef struct CoreFoundation.h kCFBoole

iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController) 前面我们介绍了StoryBoard这个新技术,和纯技术编程的代码创建界面,本篇我们将介绍一个老的技术,但是在很多的公司或者库里面还是使用这个技术,既然如此它肯定有他的好处,至于好处这里我就不一一介绍了.在Xcode5之前是只能使用Xib或者代码的,而代码又对于很多初学者来说算是一个难题.毕竟不知道怎么下手.所以我就总结了一下这段时间自己编写程序的一个实例来说明怎么

iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)

iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController) 这里我们就直接上实例: 一:新建一个项目singleView Controller,命名未iCocos 二:由于我们使用的纯代码实现的,所以删除其中的StoryBoard和Viewtroller的两个文件 三:新建一个继承自TabBar Controller的类,我们命名问iCocos ViewController 三:在Appdelegate的实现文件中导入刚刚

iOS开发——多线程OC篇&GCD实用总结

GCD实用总结 图片下载 注:iOS开发中常见GCD的实用也就这些了, 先来看看之前我们经常使用的方式: 1 static NSOperationQueue * queue; 2 3 - (IBAction)someClick:(id)sender { 4 self.indicator.hidden = NO; 5 [self.indicator startAnimating]; 6 queue = [[NSOperationQueue alloc] init]; 7 NSInvocationO

iOS开发——实用技术OC篇&单例模式的实实现(ACR&MRC)

单例模式的实实现(ACR&MRC) 在iOS开发中单例模式是一种非常常见的模式,虽然我们自己实现的比较少,但是,系统却提供了不少的到来模式给我们用,比如最常见的UIApplication,Notification等, 那么这篇文章就简单介绍一下,我们开发中如果想要实现单例模式要怎么去实现! 单例模式顾名思义就是只有一个实例,它确保一个类只有一个实例,并且自行实例化并向整个系统提供这个实例.它经常用来做应用程序级别的共享资源控制.这个模式使用频率非常高,通过一个单例类,可以实现在不同窗口之间传递数

iOS开发——多线程OC篇&(三)线程安全

线程安全 一.多线程的安全隐患 资源共享 1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源 比如多个线程访问同一个对象.同一个变量.同一个文件 当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题 问题代码: 1 // 2 // YYViewController.m 3 // 05-线程安全 4 // 5 // Created by apple on 14-6-23. 6 // Copyright (c) 2014年 itcase. All rights reserved

iOS开发——动画OC篇&所有常用动画总结

所有常用动画总结 先来装下B,看不懂没关系,其实我也看不懂-?? iOS provides several different frameworks for adding graphics and animations to your apps. UIKit is an Objective-C API that provides basic 2D drawing, image handling, and ways to animate user interface objects. Core G