objective-c - 如何命名一段代码并以不同的方法调用它?

标签 objective-c ipad xcode4 objective-c-blocks

我使用 Grand Central Dispatch 方法在队列中执行我的应用程序。我在该队列的计算中决定按钮的帧。我希望我的应用程序重新绘制其屏幕并在旋转后计算新帧。这是我所做的一些伪代码解释:

 CGFloat a=123, b=24;
     dispatch_async(drawingQue, ^{
        //needed loops to get the total button count-how many ones will be drawn et..
        for(int x=0;x<someCount<x++){
           for(int y=0;y<anotherCount;y++){

        //needed frame&name ect assingments

        button.frame= CGRectMake(x+y, x-y, a, b);
        [button setTitle:@"abc"];}}
        };

这里我想要的是,我怎样才能给这个 block 一个名字并在

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
} 

委托(delegate)方法?例如,如果旋转是横向的,我想使用 a=234 而不是 123.. 请帮忙。提前致谢..

最佳答案

声明一个 block 类型的实例变量并使用Block_copy来保留 block :

@interface My {
    void (^myBlock)(void);
}
@end

myBlock = Block_copy(^{
    ...block code...
});

// later call it
myBlock();

// don't forget to release it in dealloc

在将 block 存储到其文字范围 (^{...}) 之前,复制 block 很重要,因为原始 block 存储在堆栈并在作用域退出时死亡。

关于objective-c - 如何命名一段代码并以不同的方法调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9939158/

相关文章:

iphone - 将设备更改为ipad retina时如何解决Exe Bad access

xcode - Xcode 4 中多参数方法名称的代码完成

Xcode 4 项目 : utility to clean up pbxproj file?

objective-c - NSError、Swift 和可空性

iphone - iPad推送导航问题

ios - 如何使用 ios-image-filters 像在 Photoshop 中一样更改 UIImage 的颜色级别?

iphone - TBXML 和 <?xml> 标签问题

iphone - Lion上Xcode 4.1的奇怪编译错误

iOS - 在 UIWebView 中处理重定向

objective-c - 更改 iOS 中的应用程序语言设置而不是整个设备