我最近将 XCode 升级到了 4.5 版本,现在当我尝试开发 iOS 5.0/5.1 的应用程序时遇到了问题。
我开发了一个简单的 iPad 游戏,用户需要将图像与相应的单词进行匹配。所有这些项目都存储在 UIImageView 中(如果相关)。支持的界面方向仅是横向。
当我使用 iPad 6.0 模拟器运行我的应用程序时,一切正常,没有任何问题。但是当我尝试使用 5.1 运行它时,一切都出错了。图像根本不出现,我的背景图像出现在侧面并重复。状态栏也显示错误:设备方向是横向,但侧边栏显示在右侧。当我使用 6.0 模拟器时也不会发生这种情况。
在项目详细信息中,我已经将 iOS 部署目标更改为 5.1,在 Storyboard 中也是如此。使用 iOS 5.1 部署目标故事板不允许我选择“使用自动布局”选项,因此我取消选择此选项。是这个选项造成的吗?
我已经尝试在设备中运行我的应用程序,但结果是相同的。自从我安装了 XCode 4.5 以来,我开始遇到此类问题,因为例如我什至无法在 iOS 5.x 模拟器中正确运行“主从应用程序”模板,因为当我单击“添加”按钮时它会崩溃。
我是否缺少运行使用 SDK 6 创建的 5.x 应用程序的功能?我已经在很多论坛中搜索过,但还没有找到解决此类问题的方法。我很高兴听到任何建议,因为我已经在这个问题上浪费了很多时间,而且我已经没有选择了。
[EDIT]:我记得一个可能与这个问题相关的细节:我在故事板中的视图是自定义视图。我创建了一个从 UIView 扩展的类,以便我可以重写 drawRect 函数以在对象之间绘制线条。然后在故事板的视图中,我刚刚在“自定义类”->“类”中选择了我的类。
我注意到,当我运行 5.1 Simulator 时,状态栏最初出现在顶部,然后当窗口加载时,它会转到右侧。
如果您想了解任何其他细节,请询问我。
非常感谢。
英语不是我的母语所以请原谅我的语法......
至于您的主从“添加”按钮问题,这对我有用。
据我所知,该应用程序崩溃的原因是:
[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: unrecognized selector sent to instance
快速帮助说:
- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath declaration is only available in iOS (6.0 and later).
所以我尝试更改MasterViewController.m中的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
[self configureCell:cell atIndexPath:indexPath];
return cell;
}
对于 Xcode 在旧版本中使用的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
[self configureCell:cell atIndexPath:indexPath];
return cell;
}
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)