我最近开始使用来自" iOS编程The Big Nerd Ranch Guide第4版"的obj-c来学习iOS。此版本于2014年发布,使用Xcode 5编写。
我正在尝试使用两个按钮和两个标签制作一个简单的应用程序。标签连接到两个数组,当按下按钮时,相应数组中的对象显示在相应的文本标签中(它是第1章中的测验应用程序)。
我在Xcode 6中将该项目创建为Single View应用程序,并将所有对象放在视图控制器类中。我有两个标签两个按钮两个数组和一个int来跟踪必须从数组中显示的对象。
在书中它说我应该在initWithNibName
方法中初始化数组。我试过了,但由于某种原因它永远不会被调用。所以我将数组的初始化更改为init
方法。它们初始化很好但是当从另一种方法调用它们时它们是nil
。你知道为什么会这样吗?
我遇到的第二个问题是我无法在屏幕上获取故事板的内容。它说我应该在ViewController
内创建一个AppDelegate
的实例并使其成为根窗口控制器,但我得到的只是一个白色的窗口(如果我没有&#,则为黑色) 39;设置颜色。)
更新:我将数组的初始化从init
方法更改为viewDidLoad
方法,现在它们似乎工作正常。屏幕上没有任何东西。
答案 0 :(得分:2)
听起来你正在从应用委托和故事板初始化你的UIViewController。如果您在XCode中创建一个新项目,一个"单一视图应用程序",您根本不必触摸应用程序代理,以便在屏幕上显示某些内容。
我相信你的问题都与此有关,因为听起来你在屏幕上看到一个空的UIViewController(你在app委托中创建的那个)
至于数组的初始化,viewDidLoad
是一个很受欢迎的地方。
答案 1 :(得分:0)
如果您使用的是故事板,则不会调用initWithNibNameOrNil方法。在BNR一书中,它教你使用XIB文件,它们使用这种方法。如果您尝试按照教程,我建议使用XIB文件。
对于书籍的使用,我建议下载该书所使用的Xcode的任何版本 - 否则你在学习时会遇到很多令人困惑的问题。
如果您想下载以前版本的Xcode,请参阅此帖子: How to download Xcode DMG or XIP file?