连线
目标
-
连线前准备
- 界面绑定代码文件
- 界面仅仅只是用来显示,那么如果想写代码必须写在代码文件中。
- 并且代码只能写在跟这个界面所绑定的代码文件中
- 因为所有界面内容都在ViewController里面,所以要点黄色的“小铜钱”给这个ViewController绑定一个代码文件,绑定好后就可以把代码和连线弄在这个代码文件里了
-
连线的目的
- 通过连线才能够访问 Interface Builder 中控件的属性和方法
- 要访问 Interface Builder 中控件的属性,需要连接
IBOutlet - 如果要监听 Interface Builder 中控件的事件,需要连接
IBAction IBOutlet可以连接到私有扩展中IBAction可以连接到实现中IB就是Interface Builder的缩写
-
掌握几种连线的方式
- Interface Builder 到源代码
-
常见连线错误
连线演练

简单的加法计算器代码实现
@interface GLMainViewController () @property (weak, nonatomic) IBOutlet UITextField *num1Text; @property (weak, nonatomic) IBOutlet UITextField *num2Text; @property (weak, nonatomic) IBOutlet UILabel *resultLabel; @end @implementation GLMainViewController /// 计算结果 - (IBAction)calculate { // 1. 获取界面结果数值 NSInteger num1 = _num1Text.text.integerValue; NSInteger num2 = _num2Text.text.integerValue; // 2. 计算结果 NSInteger result = num1 + num2; // 3. 设置结果 _resultLabel.text = @(result).description; } @end
常见连线错误
-
连线出现的愿意
- 错将方法连接成了属性,又删除了
- 连接完属性或者方法后改名了
- ……
-
如果连线错误运行程序时,程序会崩溃在
main.m,并且提示以下信息:
* Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key num3Text.'
翻译
由于
NSUnknownKeyException(未知的键值异常)导致应用程序终止,CZMainViewController这个类没有num3Text键
- 代码中检查连线情

- Interface Builder 中检查连线情况

解决连线的重要技巧
连线完成后,立即 cmd + r 执行程序,不要等到写了很多代码之后再运行!
本文介绍如何在SwiftUI中通过连线实现界面与代码的交互,包括如何正确设置IBOutlet和IBAction,以及常见连线错误的排查方法。并提供了一个简单的加法计算器案例。

689

被折叠的 条评论
为什么被折叠?



