IOS中的Block在C++中的运用

本文探讨了IOS中Block的基本用法,通过一个从A视图到B视图传递值的示例,展示了Block如何在内存堆上工作并需要释放的特点。同时,文章也介绍了C++中的Lambda表达式,指出其在栈对象地址问题上的潜在陷阱。
摘要由CSDN通过智能技术生成

1.IOS中block基本demo

A视图->B视图,B视图传值给A视图

A视图的代码片段

- (IBAction)action2OtherView:(id)sender
{
	MyView *myView = [[MyView alloc] init];
	myView.func = ^(int x,int y)
	{
		int xy = myView.number;
		NSLog(@"xy->%d",xy);
		[myView removeFromSuperview];
		return 0;
	};
	[self.view addSubview: myView];
	[myView release];
}



B视图:

.h文件:

@interface MyView : UIView

@property(assign,nonatomic) int number;
@property(copy,nonatomic) int (^func)(int x,int y);
@property(retain, nonatomic) UIButton* button;
@end

.m文件:
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
	[self setFrame:CGRectMake(100, 100, 300, 200)];
	self.backgroundColor = [UIColor yellowColor];
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值