有没有免费的源码网站,免费工程项目分包平台,个人微博网站设计,单个药品营销策划方案http://my.oschina.net/leejan97/blog/268536 http://blog.csdn.net/enuola/article/details/8674063 注意事项1.内联的block中内部定义的变量 自己本身有读写权限2.block内部要修改外部变量 需要将外部变量声明__block3.Block retain是无效的#xff0c;要想保留block生命周期… http://my.oschina.net/leejan97/blog/268536 http://blog.csdn.net/enuola/article/details/8674063 注意事项 1.内联的block中内部定义的变量 自己本身有读写权限 2.block内部要修改外部变量 需要将外部变量声明__block 3.Block retain是无效的要想保留block生命周期可以通过copy来实现记得release 4.被block的应用的对象retainCount会自动加一为了打破这种 retain circle可以在对象前加__block这样block块就不会维护这个对象了 下面的写法如果不加上_block a无法dealloc __block A a [ [[A alloc] init] withBlock:^{ [a action]; [ a release]; }]; //这样A的dealloc方法就会调用 interface ViewController UIViewViewController { NSString *_string; } __block ViewController *controller self; _block ^{ NSLog(string %,controller-_string); }; 5.在独立的block中不能引用self如果需要访问可以使用参数传递的方法(可以把其考虑成c中参数传入函数指针对应copy)** 6.不要随便用.语法 #import UIKit/UIKit.h interface AppDelegate : NSObject UIApplicationDelegate property (nonatomic, strong) NSString *stringProperty; end #import GCDAppDelegate.h implementation AppDelegate synthesize stringProperty; - (void) BlockTestError{ HelloBlock myBlock ^(void){ self.stringProperty Block Objects; NSLog(String property %, self.stringProperty);//运行错误 }; myBlock(); }} - (void) BlockTestCorrect{ HelloBlock myBlock ^(void){ [self setStringProperty:Block Objects]; NSLog(self.stringProperty %, [self stringProperty]); //运行ok }; myBlock(); }} end 转载于:https://www.cnblogs.com/woaixixi/p/5012301.html