在Objective-C代码中,switch语句中不能进行对象的初始化操作。
问题
如图:
Xcode的代码提示中不会有alloc:
编译会提示如下的错误:
解决方法
使用大括号将对象初始化的代码括起来即可:
switch ([self.demos indexOfObject:self.title]) {
case DemoAutoResize:
{
UIViewAutoResize *view = [[UIViewAutoResize alloc] initWithFrame:self.view.frame];
[self.view addSubview:view];
break;
}
default:
break;
}
在此并未详细探究这个问题的原因所在。感兴趣的同学可以深入研究,欢迎告知详情。