Próbuję realizować następujące typedefNS_OPTIONS mecze
typedef NS_OPTIONS (NSInteger, MyCellCorners) {
MyCellCornerTopLeft,
MyCellCornerTopRight,
MyCellCornerBottomLeft,
MyCellCornerBottomRight,
};
i prawidłowo przypisać wartość z
MyCellCorners cellCorners = (MyCellCornerTopLeft | MyCellCornerTopRight);
podczas rysowania moją komórkę, w jaki sposób można sprawdzić, która z opcji pasuje więc mogę poprawnie go narysuj.
Bardzo dziękuję za korektę. – nizx
dość stare pytanie, ale w odpowiedzi są zamieszanie. Dla NS_Options wystarczy sprawdzić 'if (cellCorners & MyCellCornerTopLeft) {' w podanym odnośniku są błędy, autor mówi o NS_Options, ale w przykładzie użył TransitionCurlDown, który jest NS_Enum. Sprawdź od odpowiedzi jest poprawna dla NS_Enum, ale dla NS_Enum możemy użyć prostego porównania "==". – evfemist
@evfemist Użycie 'if (myValue & comparisonValue) {...}' jest odpowiednie tylko wtedy, gdy 'comparisonValue' zawiera pojedynczą opcję, lub jeśli chcesz tylko dopasować * dowolną * opcję w compareValue, co czasami ma miejsce. Ale w innych przypadkach możesz zdefiniować opcję, która zawiera wiele opcji, np. W przypadku OP, może to być 'MyCellCornerTop', który może być równy 3 (MyCellCornerTopRight | MyCellCornerTopLeft). Jeśli wtedy zrobiłeś 'if (myCellCorners & MyCellCornerTop)', to zwróci true jeśli dołączono EITHER TopLeft lub TopRight, ale możesz chcieć sprawdzić oba, więc potrzebujesz '==' –