天天看點

iOS --- Objective-C 的switch語句中不能初始化對象

在Objective-C代碼中,switch語句中不能進行對象的初始化操作。

問題

如圖:

Xcode的代碼提示中不會有alloc:

iOS --- Objective-C 的switch語句中不能初始化對象

編譯會提示如下的錯誤:

iOS --- Objective-C 的switch語句中不能初始化對象

解決方法

使用大括号将對象初始化的代碼括起來即可:

switch ([self.demos indexOfObject:self.title]) {
    case DemoAutoResize:
    {
        UIViewAutoResize *view = [[UIViewAutoResize alloc] initWithFrame:self.view.frame];
        [self.view addSubview:view];
        break;
    }
    default:
        break;
}
           

在此并未詳細探究這個問題的原因所在。感興趣的同學可以深入研究,歡迎告知詳情。