storyboard简单认识

本文详细介绍了Storyboard文件的作用及配置方法,深入解析UIViewController的概念与功能,同时阐述了IBAction与IBOutlet的使用方式及其历史背景,最后列举了一些常见的错误及解决办法。

## storyboard文件的认识

- 作用:描述软件界面

- 程序启动的简单过程

    - 程序一启动,就会加载`Main.storyboard`文件

    - 会创建箭头所指的控制器,并且显示控制器所管理的软件界面

- 配置程序一启动就会加载的storyboard文件

 

 

## 控制器

- 概念:凡是继承自UIViewController的对象,都叫做控制器

- 注意:每一个控制器都会专门管理一个软件界面

- 作用:负责处理软件界面的各种事件、负责软件界面的创建和销毁

 

## IBAction

- 只能修饰方法的返回值类型

- 被IBAction修饰的方法

    - 能拖线到storyboard中

    - 返回值类型实际是void

- 使用格式

 

```objc

- (IBAction)buttonClick

{

 

}

```

 

## IBOutlet

- 只能修饰属性

- 被IBOutlet修饰的属性

    - 能拖线到storyboard中

- 使用格式

 

```objc

@property (nonatomic, weak) IBOutlet UILabel *label;

```

 

## 关于IBAction、IBOutlet前缀IB的解释

- 全称:Interface Builder

- 以前的UI界面开发模式:Xcode3 + Interface Builder

- 从Xcode4开始,Interface Builder已经整合到Xcode中了

 

## 类扩展(Class Extension)

- 作用

    - 能为某个类增加额外的属性、成员变量、方法声明

    - 一般将类扩展写到.m文件中

    - `一般将一些私有的属性写到类扩展`

- 使用格式

 

```objc

@interface 类名()

/* 属性、成员变量、方法声明 */

@end

```

- 与分类的区别

    - 分类的小括号必须有名字

    ```objc

    @interface 类名(分类名字)

    /* 方法声明 */

    @end

 

    @implementation 类名(分类名字)

    /* 方法实现 */

    @end

    ```

    - 分类只能扩充方法

    - 如果在分类中声明了一个属性,分类只会生成这个属性的get\set方法声明

 

## 常见错误

- 第1个错误

    - 错误描述:

    ```objc

    [<ViewController 0x7fdc0152d300> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key label.

    ```

    - 原因:IBOutlet属性代码被删掉了,但是属性连线还在

    - 解决:将残留的连线删掉

 

- 第2个错误

    - 错误描述:

    ```objc

-[ViewController blueClick]: unrecognized selector sent to instance 0x7ff59d014320

    ```

    - 原因:调用了一个不存在的方法

    - 解决:认真检查方法名,使用正确并且存在的方法名

 

## 项目的常见属性

- Product Name

    - 产品名称

    - 项目名称

    - 软件名称

- Organization Name

    - 公司名称

- Organization Identifier

    - 公司的唯一标识

    - 一般用网站域名的反写形式

- Bundle Identifier

    - 软件的唯一标识

    - 默认 == Organization Identifier + Product Name

 

转载于:https://www.cnblogs.com/devlyw/p/6084486.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值