sha*_*oga 15 objective-c operators
我正在寻找一些东西,并进入这个枚举是苹果UITableViewCell.h.
我很抱歉,如果这是微不足道的,但我想知道/好奇这是什么意思.
我知道<<来自红宝石,但我真的不明白这个枚举?
enum {
UITableViewCellStateDefaultMask = 0,
UITableViewCellStateShowingEditControlMask = 1 << 0,
UITableViewCellStateShowingDeleteConfirmationMask = 1 << 1
};
Run Code Online (Sandbox Code Playgroud)
谢谢
BTW 发现它是一种学习编码的好方法,我在一天内尝试进入对象列表的头文件.
沙尼
joe*_*ick 25
这些是位字段标志.使用它们是因为您可以使用按位OR运算符组合它们.例如,您可以将它们组合起来
(UITableViewCellStateShowingEditControlMask | UITableViewCellStateShowingDeleteConfirmationMask)
Run Code Online (Sandbox Code Playgroud)
它们通过将一位设置为整数来工作.在这个例子中,二进制,
UITableViewCellStateShowingEditControlMask = 0000 0001
UITableViewCellStateShowingDeleteConfirmationMask = 0000 0010
Run Code Online (Sandbox Code Playgroud)
当它们被"或"在一起时,它们会产生0000 0011.然后框架知道这两个标志都已设置.
该<<运营商是一个左移.它改变了二进制表示.所以1 << 1意味着
0000 0001 shifted left by one bit = 0000 0010
Run Code Online (Sandbox Code Playgroud)
1 << 2等于0000 0100.
| 归档时间: |
|
| 查看次数: |
5392 次 |
| 最近记录: |