使用XCode 4.5运行iOS 5.1模拟器的问题

时间:2012-09-27 17:14:22

标签: ios ipad ios-simulator xcode4.5

我最近将我的XCode升级到4.5版本,现在当我尝试将应用程序开发到iOS 5.0 / 5.1时,我遇到了问题。

我开发了一款简单的iPad游戏,用户需要将图像与对应的单词进行匹配。如果相关,所有这些项都存储在UIImageView中。支持的界面方向仅为横向。

当我使用iPad 6.0 Simulator运行我的应用程序时,一切正常,没有任何问题。但是当我尝试使用5.1运行它时,一切都会出错。图像根本没有出现,我的背景图像出现在侧面并重复出现。状态栏也显示错误:设备方向为横向,但侧边栏显示在右侧。当我使用6.0模拟器时也不会发生这种情况。

在项目详细信息中,我已经将iOS部署目标更改为5.1,以及故事板。使用iOS 5.1部署目标,故事板不允许我选择“使用Autolayout”选项,因此我取消选择此选项。这是由此选项引起的吗?

我已经尝试在设备中运行我的应用程序,但结果是一样的。自从我安装XCode 4.5后,我开始遇到这类问题,因为例如我甚至无法在iOS 5.x模拟器中正确运行“Master-detail Application”模板,因为当我点击“Add”按钮时它会崩溃

我是否遗漏了使用SDK 6创建的5.x应用程序?我已经在很多论坛上搜索过但我还没有找到解决这类问题的方法。我很乐意听取任何建议,因为我已经在这个问题上浪费了很多时间,而且我已经没有选择了。

[编辑] :我记得可能与此问题相关的详细信息:我在故事板中的视图是自定义视图。我创建了一个从UIView扩展的类,以便我可以覆盖drawRect函数来在我的对象之间绘制线条。然后在Storyboard中,在View中,我刚刚在Custom Class中选择了我的类 - >类。

我注意到当我运行5.1 Simulator时,状态栏最初显示在顶部,然后当窗口加载时,它会向右移动。

如果您想了解任何其他细节,请问我。

非常感谢。

3 个答案:

答案 0 :(得分:4)

英语不是我的母语,所以请原谅我的语法......

就你的Master-detail“添加”按钮问题而言,这对我有用。

据我所知,应用程序崩溃的原因是:

[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;
}

希望这有帮助。

答案 1 :(得分:2)

您是否检查了故事板以确保关闭了Autolayout? Autolayout仅适用于iOS6。在Interface Builder Document下的File Inspector Area中查看视图控制器时,可以找到此选项。这是一个复选框

答案 2 :(得分:0)

好像你不是XCode 4.5中唯一一个有Simulator 5.1问题的人。 Bug in iPhone Simulator 5.1 with Xcode 4.5 using UIManagedDocument 我的应用程序也破了。 5.0 sim似乎运作良好。