零基础学 Objective-C:一步步构建你的第一个应用 – wiki词典


零基础学 Objective-C:一步步构建你的第一个应用

在移动应用开发的早期,Objective-C 是苹果 iOS 和 macOS 平台的主要编程语言。尽管 Swift 语言现在占据了主导地位,但 Objective-C 仍然在大量现有项目中被使用,并且理解它能帮助你更好地理解苹果生态系统的底层设计。如果你对 iOS 开发历史感兴趣,或者需要维护旧项目,那么学习 Objective-C 依然非常有价值。

本篇文章将带你从零开始,一步步构建一个简单的 Objective-C iOS 应用。

1. 准备工作:Xcode 环境搭建

Objective-C 开发离不开 Xcode,这是苹果官方提供的集成开发环境(IDE)。

系统要求:
你需要一台运行 macOS 的苹果电脑。Xcode 只能在 macOS 上运行。

安装 Xcode:
1. 打开 Mac 上的 App Store 应用。
2. 搜索 “Xcode”。
3. 点击“获取”并安装。Xcode 体积较大,下载和安装可能需要一些时间。

安装完成后,打开 Xcode,你可能会被提示安装额外的组件,请同意并等待安装完成。

2. 创建你的第一个 Xcode 项目

  1. 打开 Xcode。
  2. 在欢迎界面选择 “Create a new Xcode project” (或者从菜单栏选择 File > New > Project...)。
  3. 在模板选择界面,选择 iOS -> App,然后点击 Next
  4. 配置你的项目:
    • Product Name: MyFirstObjectiveCApp (这是你的应用名称)
    • Organization Identifier: com.yourcompany (通常是你的域名倒序,例如 com.example。这与 Bundle Identifier 结合起来唯一标识你的应用)
    • Interface: Storyboard (我们将使用 Storyboard 进行 UI 布局)
    • Language: Objective-C (确保选择 Objective-C 而不是 Swift)
    • Storage: None (对于这个简单项目,不需要 Core Data)
    • Include Tests: Uncheck (暂时不添加测试)
  5. 点击 Next
  6. 选择一个位置保存你的项目,然后点击 Create

3. 初识 Xcode 界面

创建项目后,Xcode 界面会呈现在你面前:

  • 左侧 (Navigator Area): 显示项目文件、符号、断点、测试结果等。
  • 中间 (Editor Area): 主工作区,用于编辑代码、设计 UI。
  • 右侧 (Utilities Area): 显示选中项的属性、帮助信息等。
  • 顶部 (Toolbar): 运行/停止按钮、设备选择器、项目配置等。

现在,让我们关注几个关键文件:

  • AppDelegate.h / AppDelegate.m: 应用的入口点和生命周期管理。
  • SceneDelegate.h / SceneDelegate.m: (仅在 iOS 13+ 新建的项目中出现)管理应用的场景和生命周期。
  • ViewController.h / ViewController.m: 默认的视图控制器,用于管理单个屏幕的 UI 和逻辑。
  • Main.storyboard: 图形化的界面设计文件,用于拖拽和布局 UI 元素。

4. Objective-C 基础语法速览

在深入应用之前,我们先快速了解一些 Objective-C 的核心概念。

类定义 (.h 文件 – 头文件):
定义类的接口,包括属性和方法声明。

“`objective-c
// ViewController.h

import // 导入 UIKit 框架

@interface ViewController : UIViewController // 声明 ViewController 类继承自 UIViewController

// 属性声明 (IBOutlet 通常用于连接 Storyboard 中的 UI 元素)
@property (nonatomic, weak) IBOutlet UILabel *helloLabel;

// 方法声明 (IBAction 通常用于连接 Storyboard 中的 UI 交互)
-(IBAction)buttonTapped:(id)sender;

@end // 类定义结束
“`

类实现 (.m 文件 – 实现文件):
实现类中声明的方法。

“`objective-c
// ViewController.m

import “ViewController.h” // 导入头文件

@interface ViewController () // 类的私有扩展,可以在这里声明私有属性或方法
@end

@implementation ViewController // 实现 ViewController 类

  • (void)viewDidLoad {
    [super viewDidLoad]; // 调用父类的 viewDidLoad 方法
    // 当视图加载到内存后,会执行这里的代码
    }

-(IBAction)buttonTapped:(id)sender {
// 当按钮被点击时,会执行这里的代码
self.helloLabel.text = @”Hello, Objective-C!”; // 修改 label 的文本
}

@end // 类实现结束
“`

关键语法点:

  • 消息传递 ([object method]): Objective-C 不直接调用方法,而是向对象发送“消息”。例如 [super viewDidLoad]; 表示向 super 对象发送 viewDidLoad 消息。
  • @interface@implementation: 用于定义类的接口和实现。
  • #import: 导入头文件。类似于 C/C++ 的 #include,但更智能,防止重复导入。
  • @property: 声明属性。nonatomic (非原子性,访问速度快,但不线程安全),weak (弱引用,防止循环引用),IBOutlet (指示该属性可以连接到 Storyboard 元素)。
  • -(void)methodName;: 实例方法声明。- 表示实例方法,+ 表示类方法。void 是返回值类型,methodName 是方法名。
  • IBActionIBOutlet: 这是 Xcode/Interface Builder 特有的关键字,它们在编译时会被替换成 voidid,主要用于在 Interface Builder 中识别可连接的 UI 元素和方法。
  • 内存管理 (ARC): 现代 Objective-C 项目默认使用 ARC (Automatic Reference Counting)。你无需手动管理内存,编译器会自动为你插入 retainrelease 等操作。

5. 构建你的第一个应用:Hello World

我们将创建一个简单的应用,点击按钮后,屏幕上的文字会从“Welcome”变为“Hello, Objective-C!”。

步骤 1: 设计 UI (Main.storyboard)

  1. 在左侧 Navigator Area 选中 Main.storyboard
  2. 在右侧 Utilities Area (如果未显示,点击 Xcode 右上角的第三个按钮),确保选中 Library (底部第三个按钮)。
  3. 在 Library 搜索框中搜索 Label
  4. 将一个 Label 拖拽到 Storyboard 的视图中央。
  5. 在 Utilities Area 的 Attributes Inspector (右上角第四个按钮) 中:
    • LabelText 属性改为 Welcome
    • Font 大小调大一些,例如 30
    • Alignment 设置为 Center
  6. 在 Library 搜索框中搜索 Button
  7. 将一个 Button 拖拽到 Label 下方。
  8. ButtonTitle 属性改为 Change Text
  9. 添加约束 (Auto Layout): 选中 LabelButton,点击 Storyboard 底部右侧的 Align (第一个按钮) 和 Add New Constraints (第三个按钮),为它们添加水平居中、垂直间距等约束,使它们在不同屏幕尺寸下都能正确显示。

步骤 2: 连接 UI 到代码 (ViewController.hViewController.m)

我们需要将 Storyboard 中的 LabelButtonViewController.h 中的属性和方法关联起来。

  1. 在 Xcode 顶部菜单栏,点击 Editor -> Canvas -> Assistant (或点击 Xcode 右上角的两个环形按钮),这会将你的 Storyboard 和 ViewController.h 文件并排显示。
  2. 连接 Label (IBOutlet):
    • 按住 Control 键,从 Storyboard 中的 Label 拖拽到 ViewController.h 文件的 @interface@end 之间的任意位置。
    • 松开鼠标后,会弹出一个小窗口。
    • Connection 选择 Outlet
    • Name 输入 helloLabel
    • 点击 Connect
    • 现在 ViewController.h 中应该有 IBOutlet UILabel *helloLabel; 这行代码。
  3. 连接 Button (IBAction):
    • 按住 Control 键,从 Storyboard 中的 Button 拖拽到 ViewController.h 文件的 @interface@end 之间的任意位置。
    • 松开鼠标后,会弹出一个小窗口。
    • Connection 选择 Action
    • Name 输入 buttonTapped
    • Type 选择 UIButton
    • Event 选择 Touch Up Inside (默认,表示手指抬起时触发)。
    • 点击 Connect
    • 现在 ViewController.h 中应该有 -(IBAction)buttonTapped:(id)sender; 这行代码。

步骤 3: 编写逻辑 (ViewController.m)

  1. 切换回 ViewController.m 文件 (如果还在 Assistant Editor 模式,可以点击顶部 Automatic 旁边的 ViewController.m)。
  2. buttonTapped: 方法中添加修改 helloLabel 文本的代码:

“`objective-c
// ViewController.m

import “ViewController.h”

@interface ViewController ()
@end

@implementation ViewController

  • (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    }

// 这是我们连接按钮后自动生成的方法,我们将在此添加逻辑
-(IBAction)buttonTapped:(id)sender {
NSLog(@”Button was tapped!”); // 在控制台打印一条消息,方便调试
self.helloLabel.text = @”Hello, Objective-C!”; // 修改 label 的文本
}

@end
“`

6. 运行你的应用

  1. 在 Xcode 顶部工具栏,点击左侧的 Play 按钮 (▶️),或者选择 Product -> Run
  2. Xcode 会编译你的项目并在选定的模拟器上运行应用(默认是 iPhone 最新型号)。
  3. 应用启动后,你会看到屏幕中央显示 “Welcome” 和一个 “Change Text” 按钮。
  4. 点击 “Change Text” 按钮,文字会变为 “Hello, Objective-C!”。同时,你可以在 Xcode 底部的 Debug Area 看到 NSLog 打印的消息。

恭喜你!你已经成功构建并运行了你的第一个 Objective-C iOS 应用!

7. 接下来可以做什么?

这只是 Objective-C 和 iOS 开发的冰山一角。你可以继续探索:

  • 更多 UI 元素: 尝试添加 UITextField (文本输入框)、UIImageView (图片视图)、UISwitch (开关) 等。
  • 多视图控制器: 学习 UINavigationController (导航控制器) 和 UITabBarController (标签栏控制器) 来管理多个屏幕。
  • 数据传递: 学习如何在不同视图控制器之间传递数据。
  • 表格视图 (UITableView): 这是显示列表数据最常用的控件。
  • 网络请求: 学习如何从互联网获取数据并显示在应用中。
  • 理解内存管理: 深入理解 ARC 的工作原理。
  • Swift: 尝试学习 Swift,这是现代 iOS 开发的首选语言,它与 Objective-C 可以混合编程。

资源推荐:

  • 苹果官方文档 (Apple Developer Documentation): 最权威的资料来源。
  • Ray Wenderlich: 提供了大量高质量的 iOS 开发教程 (Swift 和 Objective-C 都有)。
  • Stack Overflow: 遇到问题时寻求帮助的好地方。

总结

尽管 Objective-C 的黄金时代已过,但它依然是理解 iOS 和 macOS 平台发展历程的关键。通过本教程,你已经掌握了 Objective-C 的基本语法、Xcode 的使用以及如何构建一个简单的 iOS 应用。这为你进一步深入学习移动开发打下了坚实的基础。祝你在编程的道路上越走越远!


滚动至顶部