iphone - iPhone 开发人员要学习的关键概念是什么?

标签 iphone objective-c cocoa-touch

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

7年前关闭。




Improve this question




我是 Objective-C 的新手,我已经浏览了很多主题,在开发 iPhone 应用程序时,我应该更加强调哪些关键概念?

最佳答案

有许多概念构成了 iOS 开发的基础。有编码模式、技术和一些你应该知道的一般花絮。

编码模式:

  • 键值观察 (KVO) :允许一个对象通过向“目标”对象注册“观察者”来响应另一个对象属性的变化。有关 KVO 的更多信息,请参阅 Apple 的 Key-Value Observing Programming Guide .
  • Model View Controller 模式 :在 Model View Controller 模式 (MVC) 中,对象通常适合三种角色之一。您拥有模型,也就是最基本的数据。 (或者,更准确地说,数据的结构方式。)您拥有 View ,即用户在屏幕上看到的内容。最后,您有 Controller ,它在模型和 View 之间进行协调。 Controller 是您的业务逻辑通常所在的位置。 Apple 也有关于 MVC 的文档。
  • 单例模式:单例类(这是一个矛盾的说法,“单例类”)是一次只能在一个应用程序中拥有它们的一个实例的类。单例适用于“工厂类”,或者您不想要两个的对象。 UIDevice例如,类是一个单例类。 (你的 iPhone 不能同时是 iPad 和 iPhone,现在是吗?)在 iOS SDK 中,单例类通常有一个特殊的初始化程序。而不是通常的 [[Class alloc] init] , 单例经常使用 [SingletonClass sharedInstance] . (“共享”实例,因为该实例在您的应用程序中“共享”。)请注意,单例类在内存管理方面的工作方式略有不同。

  • 编码技术:
  • 代表团 :iOS SDK 中的许多对象都有委托(delegate)对象,它们响应它们“委托(delegate)”的对象的某些“事件”。例如,您可以有一个 UIPickerView (一个带有一堆选择的滚轮)。当用户选择日期时,委托(delegate)(与 UIPickerView 不同的对象)将实现 – pickerView:didSelectRow:inComponent: ,这将允许该对象执行某些操作以响应该操作。
  • 内存管理 :与许多语言不同,Java、Javascript 或介于两者之间的任何语言通常都会为您管理内存。在 iOS 上,Objective-C 不会这样做。您需要跟踪所有对象并在完成后释放它们。经验法则是,对于每个 alloc , retain , new , 和 copy ,你必须有一个对应的release , 或 autorelease . ( 关于自动释放的注意事项: 人们经常在理解 autorelease 时遇到困难。一般来说,本地“自动释放”对象保证在方法调用结束之前一直存在。不多也不少。当然,如果您在别处保留该对象,它仍将具有从该点开始的引用。)
  • :在 iOS 5 SDK 中,Apple 引入了自动引用计数。即使您计划使用手动引用计数,了解其工作原理的基础知识也很重要。您永远不知道什么时候会遇到需要使用的 ARCified 代码。
  • 数据持久化 :许多刚入门的人也面临着在两次发布之间保存数据的挑战。您有三个选项,具体取决于数据类型。您可以使用 NSUserDefaults ,文档目录(或应用程序目录层次结构中的其他几个文件夹之一,或 Core Data 。您也可以将它们结合使用,因为它们并不相互排斥。

  • 基本概念:
  • IBOutlets 和 IBActions :IBActionIBOutlettypedef s 为 void . IBAction方法返回 void并标记为 IBAction以便 Interface Builder 可以允许您将它们附加到 NIB 文件中的对象。 IBOutlet s 是代码中的“占位符”,用于设置属性,或通过 Objective-C 代码与 NIB 文件中的对象交互。
  • @ 符号 : @符号表示 Objective-C 常量,因为 Objective-C 是 C 之上的超集或框架。在 C 中,字符串常量将是 "My string is cool." .在 Objective-C 中,它将是 @"My string is cooler in Objective-C." @ 的其他示例用于区分 C 和 Objective-C 的符号是关键字,如 @implementation , @property , @class@end .
  • 指针 :Dave DeLong 在他的回答中解释了这一点,但这是确保你也知道的另一件事。

  • 最后,我给你一个忠告:

    虽然你有 StackOverflow,它确实是一个很好的资源,知道如何使用 Apple Documentation .祝您旅途愉快,祝您好运Getting Started !

    祝你好运!

    关于iphone - iPhone 开发人员要学习的关键概念是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5677655/

    相关文章:

    ios - 在 robovm 中打包 iPhone-Only 二进制文件

    ios - Objective-C iOS 开发在设置变量时使用 viewDidLoad 或 initWithCoder,为什么?

    ios - Cordova iOS 启动 comgooglemaps 失败

    iphone - 将 iPhone 键盘上的返回键更改为完成键 (UITextView)

    objective-c - 后退按钮未出现在推送的 UIViewController 上

    iphone - 使用 [UIColor colorWithRed :green:blue:alpha:] doesn't work with UITableView seperatorColor?

    html - 防止 IOS/Safari 从链接打开应用程序

    ios - 如何预览在 .xib 文件中以编程方式创建的项目?

    ios - 使用自动布局动画化 UILabel 宽度

    ios - 使用三个 View 的无限循环对 UIScrollView 进行分页