以前我有一個方法可以完成一些需要BOOL的任務。在XCode中對BOOL進行ENUM轉換的警告
-(void)processUserBasedonStatus:(BOOL)newUser
然後我定義的NS_ENUM接受更多的國家這樣
typedef NS_ENUM(NSInteger, Status)
{
StatusNewUser=0,
StatusCurrentUser,
StatusOldUser,
StatusOther
};
和更新的方法來使用新的ENUM PARAM
-(void)processUserBasedonStatus:(Status)userStatus
一切運作良好,除了Xcode中沒不會抱怨忘記更新通話方式的地方,例如
[self processUserBasedonStatus:YES];
[self processUserBasedonStatus:NO];
在這種情況下,YES & NO只會映射到ENUM的前2個值。我嘗試了Xcode中的警告列表,但沒有任何東西允許編譯器提出這個警告。
有沒有辦法讓編譯器警告我們這種類型的行爲?
Objective-C中'NO'被定義爲'0',YES被定義爲'1',所以它是完全合法的。 – vadian
嗯XCode 9.0.1我不能重現這個獲取錯誤'不能初始化類型爲'BOOL'(又名'布爾')'' – schmidt9
@ schmidt9,我剛剛更新到9.0.1和右值類型'狀態'的參數和我沒有得到這個警告。我想知道在您的項目設置中是否啓用了觸發此錯誤的警告? – ArdenDev