iOS,这种符号是什么({... ......中的某些内容...})是什么意思?

时间:2015-07-28 13:24:53

标签: ios objective-c ios7

我是一位新的iOS开发者。

今天,我遇到了 ({}) 表示法。

问题

这是什么意思?
为什么我需要这个呢?  我可以不使用它吗?

请参阅以下代码:

@property (strong, nonatomic) UITableView *myTableView;

 _myTableView = ({
    UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];

    tableView;
});

根据我所学到的,该块就像

int (^myBock)(int) = ^(int num) { return num* value;}

那么这里的({})意味着什么?它无法与我认为的上述模式相匹配。

1 个答案:

答案 0 :(得分:0)

Q1。 当某个方法/函数接受块并且你想要传递一个空块时你使用({}),当然nil也可以工作,但并不总是如果带有块参数的函数/方法不检查它不是一个零之前执行它,应用程序将崩溃,一些方法(如uiviewanimation)正在检查你确实提供了一个块而不是nil然后才执行块,但正如我所说的并非所有函数/方法(第三方)都检查它。

Q2。 如果你在一个块中直接使用self,这个块将保留“self”对象,这意味着即使不再使用“self”,也需要取消分配(例如,它是一个UIViewController,你解散/关闭它),它仍然被块保留,并且它不会允许它释放/ dealloc直到该块被执行或自行释放

您可以在https://www.youtube.com/watch?v=aS6PBmBAP1g

了解详情