为什么在UITableViewCell标识符中使用静态关键字?

Aar*_*112 22 objective-c ios

我已经多次读过"静态",包括在发布这个问题之前.我仍然在寻找一个"啊哈".

在UITableView的上下文中,静态出现在我已经看过的每一段代码中的单元标识符中.例如,在最近的CellForRowAtIndexPath中:

    static NSString *defaultIndentifier = @"Managed Object Cell Identifier";
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么我们需要并使用"静态"?

Lil*_*ard 20

这里没有真正的好处.对于读者而言,这只是一个暗示,在这个特定的代码位中,所有单元都使用相同的值.由于标识符本身是一个常量字符串,它被编译成一个不可变的内存块,并且每次都被引用为相同的指针,例如,即使删除static关键字,构造字符串也不需要花费任何成本.


Lou*_*nco 14

所以它只会被构造一次.如果它不是静态的,那么每次发送消息时你都会发一个(这很多)