iOS,这个符号( ...something in it...)是啥意思?

Posted

技术标签:

【中文标题】iOS,这个符号( ...something in it...)是啥意思?【英文标题】:iOS, What does this notation ( ...something in it... ) mean for?iOS,这个符号( ...something in it...)是什么意思? 【发布时间】:2015-07-28 13:24:53 【问题描述】:

我是一名新的 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;

那么这里的 () 是什么意思?我认为它与上面的模式不匹配。

【问题讨论】:

“2题是2题”的哪一部分你不明白? @AshishKakkad 如果我这样使用,会发生什么? @musefan 我不明白为什么我可以将像 () 这样的东西传递给 UITableView 变量 不是我的意思。我的意思是,如果您有 2 个问题,那么您应该将它们作为 2 个单独的问题发布在 Stack Overflow 上。不要创建 1 个问题来将所有问题组合在一起 很抱歉。下次我会把它们分开,但这里的问题 2 已经回答了。我能做些什么来解决它? 【参考方案1】:

第一季度。 当某些方法/函数接受块并且您想传递使用的空块时 () ,当然 nil 也可以工作,但并非总是如此,如果采用块参数的函数/方法没有检查它之前不是 nil执行它,应用程序将崩溃,某些方法(如 uiviewanimation)正在检查您是否提供了一个块而不是 nil,然后才执行块,但正如我所说,并非所有功能/方法(第 3 方)都会检查。

第二季度。 如果你直接在一个块中使用 self ,这个块将保留“self”对象,这意味着即使“self”不再被使用也需要被释放(例如它是一个 UIViewController 并且你关闭了它),它仍然与块一起保留,并且在该块被执行或自行释放之前不会允许它释放/释放

您可以通过https://www.youtube.com/watch?v=aS6PBmBAP1g了解更多信息

【讨论】:

真的非常感谢您的问题2,但是对于问题1,为什么我可以将Block传递给UITableView? 因为它像 object 一样被“包裹”,就像“id”一样 那么传递给 UITableView 的是 () 中的 tableView 吗?我真的很好奇为什么我们需要这种代码风格。我们可以 _myTableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];会有什么不同吗? 我不明白你的问题,这只是一个代码块,它不会返回tableView,请看youtube.com/watch?v=aS6PBmBAP1g 我已经观看了 youtube 视频,但是如果这里 ( ... ) 传递给 _maTableView 是一个块,那么 ^ 符号在哪里?我可以定义一个没有“^”的块吗?

以上是关于iOS,这个符号( ...something in it...)是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

C语言程序编译错误 request for member 'num' in something not a structure or union

How to configure spring boot through annotations in order to have something similar to <jsp-confi

something funny

something

在没有 Cocoapods 的情况下手动集成 Firebase 和 Google Sign In SDK 时出现重复符号

匿名函数function前面的! ~等符号作用小解