Block的使用(二)变量

本文深入探讨了Objective-C中的变量访问方式,包括外部变量、内部变量及其在block中的读写特性,同时详细阐述了如何在方法内部的内联block中访问和修改对象属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1。变量访问:

               外部变量,在block内是只读

               在外部声明变量时加上前缀__block,在block内成可读写

2。属性访问:

               在方法内部的内联(匿名)block中出现的self表示该 方法所属的类本身,可通过.property对该类的属性进行读取,设置

               对于独立的block(即单独声明定义的),self不能单独出现,只能通过参数传递,此时表示所属类本身,使用时不能用属性.propery,但可用方法setProperty / [self  property]进行读取,设置

e.g.

typedef void (^BlockWithNoParams)(void); 

- (void) scopeTest{

        NSUInteger integerValue = 10;
        BlockWithNoParams myBlock = ^{
            NSLog(@"Integer value inside the block = %lu", (unsigned long)integerValue);       
       }        
       integerValue = 20;
       myBlock();  //打印10  因为integerValue在block内是只读 变量,(若integerValue加了前缀__block,则变为了可读写变量,打印20)
       NSLog(@"Integer value outside the block = %lu", (unsigned long)integerValue) ;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值