OC基础 :Block(据说是重难点) 数组高级
来源:互联网 发布:jb是什么意思网络用语 编辑:程序博客网 时间:2024/06/03 02:29
OC第六讲
//快捷键系统键加逗号,调背景颜色
//
#import <Foundation/Foundation.h>
//课前定义个指针求和
int sum(int x,int y){
return x+y;}
int main(int argc,constchar * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
// Block(据说是重难点) 数组高级
/*
Block:块语法,本质上是匿名函数(没有名称的函数)
标准C里面没有匿名函数,在C语言后期的版本中才加入了匿名函数
在c++,js,swift中也有类似语法,叫做闭包
Block和函数指针很相似
*/
/*
//定义返回两个数之和的指针,
int (*k)(int x,int y);
k = sum;
NSLog(@"k = %d",k(1,1));
*/
int mulitipier = 7;
int (^myfirstBlock)(int) = ^int/*这个int可以省略*/(int num/*num这个名字可以随便给哦,但别与系统关键字重复就好*/){return num * mulitipier; };
/*
int : block块的返回值类型
(^myBlock) : ^是block类型标示符,myfirstBlock是块语法的名字
(int) : 括号内是block的参数类型可以有多个参数或者是没有参数;没有参数用void(其实不写也行)
= : 等号右边是定义块对象的语法结构(相当于函数的定义),然后给myfirstblock的返回值赋值
^ : block类型的标示符
int : block类型的返回值
(int num) : 参数列表,这个地方必须有参数名
{} : block内部实现
; : 不要忘记以分号结尾(大括号内也有分号)
block类型 : int(^)int
block变量名 : myfirstblock
block值 : ^(int) (int num){return num * 7}
^返回值类型(参数名){函数体};其实返回值类型可以省略
*/
//block调用
int a = myfirstBlock(7);
NSLog(@"a = %d",a);
/*找的博客:
链接:http://www.cnblogs.com/wayne23/p/4026313.html
*/
//无返回值无参
// void (^myBlock)(void);
void (^myBlock1)(void) = ^void(void){NSLog(@"这是一个无返回值无参的block");};
//调用。当block没有参数的时候也需要在block变量名后面加上括号
myBlock1();
//无返回值有参
void (^lllBlock1)(int) = ^(int num){};
//有返回值无参
// int (^kkkblock)(void) = ^int(void){return 1212;};
NSInteger (^cccblock)(void) = ^NSInteger(void){return 1111;};
NSLog(@"cccblock = %lu",cccblock());
//有返回值有参
NSString *(^aaablock)(NSString *) = ^NSString *(NSString *str){
NSString * resultstr =
[str stringByAppendingString:@"hello"];
return resultstr;
};
NSString *str = aaablock(@"word");
NSLog(@"str = %@",str);
/*
void (^myBlock1)(void); //无返回值,无参数
void (^myBlock2)(NSObject, int); //有返回值,有参数
NSString* (^myBlock3)(NSString* name, int age); //有返回值和参数,并且在参数类型后面加入了参数名(仅为可读性)
*/
- OC基础 :Block(据说是重难点) 数组高级
- OC-Block和数组高级
- OC--Block 数组高级 课后小练习
- JavaScript重难点基础笔记
- OC基础—block
- OC基础:Block简介
- OC基础----数组排序(OC)
- OC基础:block.字面量
- OC基础之Block详解
- Java小程序之自定义数组队列的实现(高级画板重绘基础)
- OC高级特性--Block匿名函数
- 进阶之路(基础篇)OC——block
- OC基础_数组
- OC第六天:Block、数组⾼级
- OC基础——ARC和Block
- 黑马程序员-IOS-OC基础-Block
- 黑马程序员------OC基础-----block和protocol
- 黑马程序员 OC基础: Block 和 Protocol
- hdu 4771 Stealing Harry Potter's Precious(BFS+状态压缩)
- 把ListView和GridView与AppBar实现上下联动
- Python编写微信打飞机小游戏(三)
- 数据结构实验之二叉树一:树的同构
- 浅谈Java读取Csv实践(javacsv)
- OC基础 :Block(据说是重难点) 数组高级
- [转]程序员练手小项目
- 关于在android开发中使用jsoup的详解
- JAVA中使用AES加密
- 搭建Erlang语言开发环境(文本编辑器+Erlang OTP,不是绑定IDE的环境)
- 禅与填坑艺术-0
- No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)
- v7包下在非AppCompatActivity添加Toolbar
- 反射+工程模式