IOS基础_Block语法的简单使用

开始学IOS的时候没怎么接触过block语句,在后来用到的越来越多,就不得不学了,刚开始理解比较困难的,然后自己做了一个例子就慢慢理解了,不说废话了,上代码:

正常的简单地申明调用一个block语句是这样的:

//申明

int (^yxpBlock)(int, int)  =^(int a ) {return a*a ;};

说明:返回值(^语句块名称)(传人参数类型)=^(传人参数){主体};

//调用

int result = square(5);

我建了一个测试项目包含了(yxpAppDelegate和yxpViewController)两个类

在yxpViewController类里面

申明了一个block语句类型

@classyxpViewController;

typedef void (^yxpBlock) (yxpViewController *);

在yxpViewController 申明了yxpBlock变量

@interface yxpViewController :UIViewController

@property (nonatomic,assign)yxpBlock yxpblock;

@end

在touchesBegan: withEvent:调用block语句 (调用block语句要用一根下划线,@propert默认提供)

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

_yxpblock(self);

}

//在yxpAppDelegate中使用了block语句

__blockNSString *str=@"触摸屏幕";

yxpViewController *viewContro=[[yxpViewControlleralloc]
init];

viewContro.yxpblock=^(yxpViewController *viewController){

NSLog(@"---------%@",str);

};

self.window.rootViewController=viewContro;

注意:block语句可以读取外部变量,但是不能写入,如果需要在block语句里修改外部变量,外部变量要用__block (两根下划线)标识

将这个例子弄懂相信你就对block语句有一个初步的了解了

IOS基础_Block语法的简单使用

时间: 2024-11-03 05:41:25

IOS基础_Block语法的简单使用的相关文章

IOS基础_ UICollectionView的简单使用

和表格视图类似 UICollectionView的使用有两种方法 一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView: 另外一种是创建一个UIConllectionView 视图放在普通的UIViewController里面. 我们用第二种 首先声明先声明一个重用标示  和实现委托 #define _CELL @"acell" @interface yxpViewController ()<UICol

IOS基础UI之(一)简单的qq登录

实现功能效果: (1)界面可输入qq号及密码,点击登录后台输出qq号和密码 (2)输入框有提示信息,焦点在输入框时提示信息消失 (3)点击登录按钮时,手机键盘自动隐藏学习 效果: 熟悉控件属性.事件与代码的关联 效果图如下: 实现过程: 1.拖相应的控件到界面上,设置控件属性 2.拖线关联变量和事件.很明显,想要得到界面输入的qq号码和密码,就得设定输入框的变量.点解按钮触发事件,代码才能做相应的逻辑处理. 以下是属性的连线(实心才说明关联上): 按钮事件连线关联方法: 3.获取qq号码和密码,

开始了解C++基础概念语法

#include<iostream.h>是在旧的标准C++中使用.在新标准中,用#include<iostream>. iostream.h是input output stream的简写,意思为标准的输入输出流头文件.它包含: (1)cin>>"要输入的内容" (2)cout<<"要输出的内容" 对象分为两组:面向单字节的,即常见的cin.cout.cerr和clog:其面向宽字节的对应物,声明为wcin.wcout.

iOS基础问答面试题连载(三)-附答案

「Tim的博客」iOS基础问答面试题连载(一)-附答案 「Tim的博客」iOS基础问答面试题连载(二)-附答案 「Tim的博客」iOS基础问答面试题连载(三)-附答案 「Tim的博客」iOS基础问答面试题连载(四) 这次的问题是网络多线程相关的哟,面试的时候也是必问的,大家多看看 11月24日修正一处错误:18.19题目一样,答案不一样(其实是两种理解,修改为最优的一种放上来.多谢读者提醒) 以下是一些自己收集的网络多线程方面比较基础的问题(大神可以忽略),附上答案,方便大家阅读.俗话说得好,基

iOS基础 KVC和KVO

疯狂IOS讲义这本书之前一直一直觉得没什么用,看了做不出像样的程序出来,但是经过几天的学习发现,没有一定的ios基础,做的程序永远都是在模仿他人的程序,把他人的代码复制 粘贴...为什么能够实现?原理 是什么?不懂...所以 必须懂原理,为什么? 接下来就今天所学习的内容做一个小结: 首先介绍一下KVO和KVC,一个是键值编码一个是键值监听,我第一次听这个也是很困惑,这是个神马意思?键值是啥?监听 还懂一点 ... 我们都知道之前我们都是通过setter和getter来设置和修改对象的属性,KV

iOS基础 01 构建HelloWorld,剖析并真机测试

iOS基础 01 构建HelloWorld,剖析并真机测试 前言: 从控制台输出HelloWorld是我们学习各种语言的第一步,也是我们人生中非常重要的一步. 多年之后,我希望我们仍能怀有学习上进的心情,继续以HelloWorld去认识这世界上更多的东西. 本篇以HelloWorld作为切入点,向大家系统介绍什么事iOS应用以及如何使用Xcode创建iOS应用. 目录: 1. 创建HelloWorld工程 1.1. 设计界面 1.2. 真机测试 2. Xcode中的iOS工程模板 2.1. Ap

iOS 基础 第二天(0805)

0805 面向对象三大特性 封装.继承和多态 oc的方法都是在运行过程中才会检测的.编译时方法没实现只会出现警告,运行时出错.如果方法实现了但没有声明,运行时对象仍然可以调用方法不会出错.这是OC中弱语法的表现 说白了oc中的弱语法就是因为运行时检测合理性和可用性.编译时不会出错顶多是警告,运行时才警告.这个现象不仅仅体验在方法的声明和实现上,比较好的一个例子是MPMoviePlayerController的截屏通知事件,它需要传入float类型的数组,如果你在编译写了整型不会报错也不会警告,但

文顶顶 iOS开发UI篇—iOS开发中三种简单的动画设置

iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView beginAnimations:nil context:nil]; //设置动画时长 [UIView setAnimationDuration:2.0]; self.headImageView.bounds = rect; // commitAnimations,将beginAnimation之后的所

iOS开发UI篇—iOS开发中三种简单的动画设置

iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView beginAnimations:nil context:nil]; //设置动画时长 [UIView setAnimationDuration:2.0]; self.headImageView.bounds = rect; // commitAnimations,将beginAnimation之后的所