【问题标题】:copying ViewController from another project causes NSScanner: nil string argument从另一个项目复制 ViewController 会导致 NSScanner: nil string argument
【发布时间】:2016-09-29 01:24:38
【问题描述】:

我从另一个作为单独 Xcode 窗口打开的工作项目中复制了一个 ViewController。它没有显示任何错误,但在运行时我得到了

NSScanner: nil string argument 

我放了断点,发现我切换到新的 ViewController(复制的 ViewContoller)..

GCHConnectViewController* gchConnectViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"gchChoose"];

我检查了很多次......

故事板 ID 正确(即 gchChoose)
使用 Storyboard Id 复选框已选中
自定义类 > 类正确(即 GCHConnectViewController)

我从另一个项目复制了 7 个 ViewController,当我尝试切换到它们时它们都会导致相同的错误,但其他 ViewController(未复制)在切换时可以正常工作..

一个小时以来,我一直试图找出问题所在,但没有运气。任何帮助表示赞赏

【问题讨论】:

  • 您是在复制视图控制器文件,还是仅复制文件的内容?检查文件的目标成员身份是否正确。
  • 这些信息不足以帮助您。视图控制器本质上与NSScanner 类相关。您是否在代码中使用了NSScanner 类?
  • @DanielOrmeño 是的,我确实也从另一个项目中复制了 ViewController 的 .h 和 .m 文件。我该如何检查?目标会员??

标签: ios objective-c xcode uiviewcontroller storyboard


【解决方案1】:

首先尝试清理您的项目。

此外,请检查所有出口/操作是否都在适当的位置。另外,检查是否在以前的项目中视图控制器有 segue,删除那些。

【讨论】:

  • 你设置了故事板ID吗?或与 tableview 或视图控制器 ID 等相关的任何标识符?你也必须这样做。还要确保你的 segue 标识符设置得很好
【解决方案2】:

确保您的 IBOuttes 和 IBAction 正确连接。并两次检查您是否没有针对同一事件的多个引用插座或操作(无论它是否已连接)。

您可以从连接检查器中检查它。所以选择vew控制器的每个对象并逐个检查连接检查器。

希望这会有所帮助:)

【讨论】:

  • 他们似乎都是正确的。现在我尝试添加一个新的 UIViewController(只是一个没有插座或操作的空白视图)。我什至不能切换到它。实际上我正在编辑一个项目并添加一些新屏幕,我可以切换到已经存在但不是新的 ViewControllers。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-16
  • 1970-01-01
  • 2013-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多