【问题标题】:iphone Simulator crash?iphone模拟器崩溃?
【发布时间】:2011-05-16 00:46:35
【问题描述】:

我正在为 iPhone 和 iPod 开发应用程序,在开发应用程序期间,我使用了模拟器 3.2(iPad),它运行良好,但是当我想在模拟器 3.1.3 上运行我的应用程序时,它会生成一个错误,我通过评论这一行来删除此错误//self.clearsSelectionOnViewWillAppear = NO; 并成功构建项目,但是当我单击按钮时,它会在模拟器 3.1.3 上运行应用程序,它会完美地进入 3.2 模拟器的另一个屏幕并在 3.1.3 上崩溃 我所做的一切都是为了摆脱它。

【问题讨论】:

  • 请在使用之前检查方法文档,如果它们在您的工作 sdk 中可用。正如清楚地写的那样,clearsSelectionOnViewWillAppear 在 3.2 以上可用。它会解决你的大部分问题:)

标签: iphone crash ios-simulator


【解决方案1】:

UITableViewController 的文档明确指出 clearsSelectionOnViewWillAppear 在 iOS 3.2 及更高版本上可用。它在 3.1.3 中崩溃,因为此属性在 3.1.3 中不存在(您可以通过阅读您已经发现的导致问题的属性的文档或查看错误消息来轻松推测这一点,这将表明对象不响应 setClearsSelectionOnViewWillAppear 的选择器。

在设置此之前,您可以检查此属性然后设置它,否则您的旧代码可以按原样支持,或者您可以做一些更高级的事情并在 3.2 之前的环境中添加该属性。

要检查代码,请执行以下操作:

if( [UITableViewController instancesRespondToSelector:@selector(setClearsSelectionOnViewWillAppear:)] ) {
  // This is 3.2+ so we can use this property
  [self setClearsSelectionOnViewWillAppear:NO];
} else {
  // This is something earlier than 3.2, so we ignore it
  NSLog(@"will clear selection: pre-3.2");
}

【讨论】:

  • 我把这段代码放在哪里&当我把它放到 viewDidload 方法中时,它说警告类可能不会响应 setClearsSelectorOnViewWillAppear 方法。请详细解释我是新手。
  • @suchita:我拼写错误的方法,这就是你收到警告的原因。请仔细检查代码,不要只是剪切和粘贴。我将编辑答案,但确保您在网上找到的代码质量由您决定。
【解决方案2】:

你能更清楚地解释你的问题吗?

亲爱的朋友,

您应该更仔细地阅读 Apple 文档,

明确指出

清除SelectionOnViewWillAppear

是 iPhone OS 3.2 及更高版本可用的方法,您正在尝试在 3.1.3 中使用它。

所以结果是显而易见的。

清除SelectionOnViewWillAppear 一个布尔值,指示控制器是否在表格出现时清除选择。

@property(nonatomic) BOOL clearsSelectionOnViewWillAppear

讨论 此属性的默认值为 YES。为 YES 时,表格视图控制器在收到 viewWillAppear: 消息时清除表格的当前选择。将此属性设置为 NO 会保留选择。

可用性 适用于 iPhone OS 3.2 及更高版本。 宣布于 UITableViewController.h

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 2012-01-04
    • 2017-08-22
    • 2012-02-21
    • 2011-03-20
    • 2010-12-24
    • 1970-01-01
    相关资源
    最近更新 更多