以编程方式完整地创建iPhone应用程序

时间:2010-03-27 17:04:21

标签: iphone

我最近对iPhone应用程序开发感兴趣,所以我一直在寻找在线教程,并且还在阅读一本书,在我一起试用这些例子。

我变得越来越好,但我仍然觉得通常的开发模型之一令人讨厌的事情之一就是我真的不知道SDK在幕后真正做了什么来让应用程序“正常工作”,因为Apple < em>保护我。例如,当我在界面构建器上建立连接时,这可能对应于在某处生成的代码...代码在哪里以及它的作用以及它的工作原理并不明显(对我而言)。

所以我想知道,是否可以完全以编程方式创建iPhone应用程序?也就是说,在一些main方法中执行开始,然后以编程方式创建任何视图,注册事件监听器等。如果是,那么这样的东西有什么好的资源?

4 个答案:

答案 0 :(得分:9)

没有生成的代码。这是序列化。 Interface Builder将对象树序列化为.xib文件,您的应用程序将其反序列化。

当然,你也可以在代码中构建你的UI,它只是更多的代码。在早期版本的SDK中,这甚至是必要的,因为Interface Builder还没有。

答案 1 :(得分:2)

我不使用界面构建器,它对我很有用。在XCode中创建新应用程序时,您可以选择“基于窗口的应用程序”,它将在您的新项目和应用程序委托中创建一个窗口。应用程序委托具有方法applicationDidFinishLaunching,它实际上是您的“主要”方法 - 您可以直接在窗口中创建视图和它们,或者您可以创建视图控制器,然后将它们的视图添加到窗口中。

答案 2 :(得分:2)

I'm getting better, but one of the things I still find quite annoying about
the usual development model is that I really have no idea what the SDK is really 
doing behind the scenes to make the app "work" because Apple protects me from 
this. For example, when I make connections on interface builder, this presumably 
corresponds to code being generated somewhere... Where that code is and what it 
does and how it works are not obvious (to me).

你错了。 IB帮助您实例化控件对象并帮助您通过IBOutlets将它们连接到您的代码逻辑,但这些是真实的,活动的对象,它不是代码生成的,这是一种误解。此代码存档于Nib文件(运行时)和Xib文件(IB在设计期间使用)所有这些以及更多,包括Nib对象生命周期在https://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html#//apple_ref/doc/uid/10000051i-CH4-SW8

中详细解释

是的,你可以完全绕过IB,但绝对不适合初学者。

答案 3 :(得分:1)

简答:是的

答案很长:

接口构建器不仅仅为您生成XML。您可以在文本编辑器中打开XIB来证明它,并且Xcode甚至足够聪明,可以评估XML并在适当时为您提供编译器警告。

有许多自动生成iPhone项目的工具,可能最受欢迎的是Unity。对于喜欢冒险的人来说,还有一个开源项目Titanium。这是一个自己承担的崇高项目,所以我建议你先投入一个开源项目来帮助其中一个已经存在的开源项目,直到你完全熟悉它,然后再尝试再次重新发明一个更好的轮子。 / p>