- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] init...
分类:
其他好文 时间:
2014-08-20 21:05:52
阅读次数:
176
对于大多数人来讲,block内部到底是怎样实现的呢?我们可以借助clang将其编译成为c++的代码,就可以看出,block到底是什么东西, 先来看这样一个问题, int age = 10; void (^block)() = ^{ NSLog(@"%d",age); }...
分类:
其他好文 时间:
2014-08-17 18:41:42
阅读次数:
445
这就需要引入三个名词:
● _NSConcretStackBlock
● _NSConcretGlobalBlock
● _NSConcretMallocBlock
正如它们名字说的那样,说明了block的三种存储方式:栈、全局、堆。...
分类:
其他好文 时间:
2014-08-16 22:31:41
阅读次数:
237
GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用。所以说,结合block实现的GCD,把函数闭包(Closure)的特性发挥得淋漓尽致。dispatch队列的生成可以有这...
分类:
其他好文 时间:
2014-08-14 10:44:18
阅读次数:
239
一个block其实是一个对象,有他自己的属性,结构如下isa指针,所有对象都有该指针,用于实现消息传递等功能(ias一般指向父类、元类)flags,用于按bit位表示一些block的附加信息reserved,保留变量。invoke,函数指针,指向具体的block实现的函数调用地址。descripto...
分类:
其他好文 时间:
2014-07-25 16:41:12
阅读次数:
413
第二个view声明一个block属性:
@property (nonatomic, copy) void(^doTransferMsg)(NSString *_msg);
然后传值方法里检查block是不是存在
- (IBAction)transferText:(UIButton *)sender {
if (_doTransferMsg) {
_do...
分类:
其他好文 时间:
2014-07-22 22:34:35
阅读次数:
179
们先看看blockTest2,它是由 结构体impl, 结构体Desc, 构造方法__exampleBlock_block_impl_2() 组成展开后是
*isa 指向该实例对象(代码里是NSConcreteStackBlock,其实应该是NSConcreteGlobalBlock)
Flags 用于按bit位表示一些block的附加信息
reserved 保留变量
*FuncPtr 函数指针,指向具体的block实现的函数调用地址(代码里是__exampleBlock_block_func_2)...
分类:
其他好文 时间:
2014-07-21 22:12:48
阅读次数:
336
四、游戏交互实现1、前面已经介绍在Block类实现了每个block的触碰监听,block实现触碰监听,当按下时,调起在GameScene中实现的touchBlock方法。下面来看改方法的实./***点击到Block时进行的逻辑处理**@parampBlock*所点击的block*/publicvoidtouchBlock(BlockpBlock){if(gameS..
分类:
其他好文 时间:
2014-07-17 15:24:22
阅读次数:
346
在IOS开发中经常会用到回调的情况,下面介绍如何用block实现回调。1 #import 2 3 @interface BLock : NSObject4 5 + (void)getBlock:(void (^)(NSString *))someblock;6 7 @endBLock.h 1 #im...
分类:
移动开发 时间:
2014-06-27 13:05:40
阅读次数:
159