Tôi cố gắng để thực hiện những điều sau typedefNS_OPTIONS phù hợp
typedef NS_OPTIONS (NSInteger, MyCellCorners) {
MyCellCornerTopLeft,
MyCellCornerTopRight,
MyCellCornerBottomLeft,
MyCellCornerBottomRight,
};
và chính xác gán một giá trị với
MyCellCorners cellCorners = (MyCellCornerTopLeft | MyCellCornerTopRight);
khi vẽ di động của tôi, làm sao tôi có thể kiểm tra trong những lựa chọn phù hợp vì vậy tôi có thể vẽ chính xác nó.
Cảm ơn rất nhiều về sự điều chỉnh. – nizx
câu hỏi khá cũ, nhưng có nhầm lẫn trong câu trả lời. Đối với NS_Options sẽ đủ để kiểm tra 'if (cellCorners & MyCellCornerTopLeft) {' trong tham chiếu được cung cấp có lỗi, tác giả nói về NS_Options nhưng ví dụ anh ta sử dụng TransitionCurlDown là NS_Enum. kiểm tra từ câu trả lời là đúng cho NS_Enum, nhưng đối với NS_Enum chúng ta có thể sử dụng so sánh '== 'đơn giản. – evfemist
@evfemist Sử dụng 'if (myValue & comparisonValue) {...}' chỉ phù hợp nếu 'compareValue' chứa một tùy chọn duy nhất, hoặc nếu bạn chỉ muốn so khớp tùy chọn * any * trong compareValue, đôi khi là trường hợp. Nhưng các trường hợp khác, bạn có thể xác định một tùy chọn có chứa nhiều tùy chọn, như trong trường hợp OPs có thể là 'MyCellCornerTop', có thể bằng 3 (MyCellCornerTopRight | MyCellCornerTopLeft). Nếu bạn sau đó đã làm 'if (myCellCorners & MyCellCornerTop)', nó sẽ trả về true nếu EITHER TopLeft hoặc TopRight được bao gồm, nhưng bạn có thể muốn kiểm tra cả hai, vì vậy bạn cần '==' –