我想畫我的手機時,實現下面的typedefNS_OPTIONS匹配
typedef NS_OPTIONS (NSInteger, MyCellCorners) {
MyCellCornerTopLeft,
MyCellCornerTopRight,
MyCellCornerBottomLeft,
MyCellCornerBottomRight,
};
,並正確地
MyCellCorners cellCorners = (MyCellCornerTopLeft | MyCellCornerTopRight);
分配一個值,我怎麼能檢查哪些選項符合這樣我就可以正確繪製它。
非常感謝您的糾正。 – nizx
很古老的問題,但答案中有混淆。對於NS_Options將足以檢查 '如果(cellCorners&MyCellCornerTopLeft){' 中提供的參考也有錯,筆者約NS_Options會談,但例如他用TransitionCurlDown這是NS_Enum。 從NS_Enum中檢查答案是正確的,但對於NS_Enum我們可以使用簡單的'=='比較。 – evfemist
@evfemist使用'if(myValue&comparisonValue){...}'只適用於'comparatorValue'包含單個選項,或者您只想匹配compareValue中的任何*選項,有時候這種情況就是這種情況。但在其他情況下,您可能會定義一個包含多個選項的選項,就像在OP中的情況一樣,可能是一個「MyCellCornerTop」,它可能等於3(MyCellCornerTopRight | MyCellCornerTopLeft)。如果你接着執行'if(myCellCorners&MyCellCornerTop)',如果包含了TopLeft或TopRight,它將返回true,但是你可能想要檢查兩者,所以你需要'==' –