XCode(4.5、4G182)にスイッチ/ケース構造でケースを完成させ、欠落しているケースについて警告するにはどうすればよいですか?
例えば:
for (int i=0;i<[flat elementCount];i++) {
NSPoint elements[3];
NSBezierPathElement elem=[flat elementAtIndex:i associatedPoints:elements];
switch (elem ) {
case NSMoveToBezierPathElement: break;
case NSLineToBezierPathElement: break;
case
私は過去にこれを見たことがあります。また、ブロックが閉じられると、欠落しているケースについて警告しました。XCode 4.5をどのように実現できますか?
編集:Switchステートメントが有効になっていることを確認してください。警告はありません。
完了が機能する小さな例を次に示します。
typedef enum {
kThisCase = 0,
kThatValue = 1,
kLastOne = 2
} myEnum;
myEnum var= kLastOne;
switch (var) {
case kThatValue: break;
case kLastOne: break;
case
CTRL+SPACEここでmyEnumの残りの可能な値を取得します
NSBezierPathElementの完了の場合、これを追加すると次のようになります。
typedef enum {
NSMoveToBezierPathElement,
NSLineToBezierPathElement,
NSCurveToBezierPathElement,
NSClosePathBezierPathElement
} NSBezierPathElement;
(クイックヘルプパネルからコピー)スイッチを作成する前は、オートコンプリートは機能しますが、警告は機能しません。
NSBezierPath.hのコンテンツ
enum {
NSMoveToBezierPathElement,
NSLineToBezierPathElement,
NSCurveToBezierPathElement,
NSClosePathBezierPathElement
};
typedef NSUInteger NSBezierPathElement;
完了が機能しない理由ですか?この列挙型はNSBezierPathElementのタイプであると想定されていませんか?
これはクイックヘルプパネルとは一致しません。クイックヘルプパネルには、次のようなものがあります。typedef enum { NSMoveToBezierPathElement, NSLineToBezierPathElement,
NSCurveToBezierPathElement, NSClosePathBezierPathElement} NSBezierPathElement;