如何理解Swift中Optional的!和?

很多人在刚上手swift时对于Optional中 ‘!’  ‘?’ 的使用十分不理解,接下来我会谈一谈自己对于这两个符号的使用方式的理解。

先来说说Optional的概念,以方便之后的理解。来看一下下面的代码:

```

var a : String = nil              // 编译错误,String类型不能为nil

var b : String = “Hello!”

```

Swift 中的普通类型不再能设为nil。那如何表示这个值不存在呢?所以引进了Optional的概念:代表 nil 或某个具体的值。例如:

```

var c : String? = nil       

var d : String? = “Hello!” 

```

String? 就是一个Optional,它既能够被具体类型赋值, 也可以赋值为nil。通过 String  Optional的比较,发现Optional 就相当于把具体类型 nil 打包捆绑在了一起,转变成了一种新的类型。

 Optional 有两种声明方法:

```

var apple: String?   

var bread: String!   

```

很多人认为,声明为 String! 的变量表明该变量的值不为 nil。但是,实际上,String!  String? 都是有默认值的,且默认值都为nil。我们为它们赋一个初值再打印类型来看看:

```

var apple: String? = “apple”   

var bread: String! = “bread”

```

```

(lldb) p apple

(String?) $R0 = “apple”

(lldb) p bread

(String?) $R1 = “bread”

```

发现,尽管apple  bread 虽然一个是 String? 一个是 String! 但是打印出来都是 String? 类型的。**所以更恰当的理解应该是:String! 只是理解意义上的不为nil,其本质还是一个 Optional,从声明来说它 String? 完全等价,所以也能够赋值为 nil 。**

为了之后叙述方便,我们把定义类似 String? 的称为 Optional(?), 定义类似 String! 的称为 Optional(!)。

Optional 的本质是囊括 nil 具体类型的一种枚举。获取它具体值的操作过程称之为拆包,用 “!” 表示。先来做个实验:

```

var string : String

var optionalString: String?   

var nonOptionalString: String!

string = nonOptionalString    // ① 崩溃

string = optionalString      // ② 编译错啦

string = optionalString!     // ③ 崩溃

```

具体看一下报错原因:

① String! 赋值给 String ,报错为:拆包时Optional的值为nil; 

② String? 赋值给 String,编译器报错为 Optional未拆包;

③ 拆包后的 String? 赋值给 String,这时,报错为:拆包时Optional的值为nil;

String!  拆包后的 String? 进行传值时报的错相同,由此我们可以得出一个结论:**编译器默认 Optional(!) 是确定有值的,所以不需要再对 nil 的情况进行处理。Optional(!) 的变量只是给予了自动拆包的权限,在实际使用它的过程中不需要再次使用 ‘!’ 进行拆包。在swift官方文档中称为:Implicitly Unwrapped Optional (隐式拆包),也可以理解成“拆过包了”。**

 但是,只有在变量确认有值的情况下才能进行拆包。就像如上代码,optionalString 为nil,进行拆包就会引发崩溃。swift官方建议,Optional 使用 if + ! 结合的方式或者 if let 进行安全地拆包。简单的看下代码:

```

if optionalString != nil {

   append(string: optionalString!)

} else {

   // do something

}

```

```

if let actualString = optionalString {

   append(string: actualString)

} else {

   // do something

}

```

**再次提醒一下,Optional(!)  Optional(?) 都可以使用这两种方式进行安全地拆包,只是编译器不会对没有处理 nil 情况的 Optional(!) 报错。**

下图展示了 Optional String 可接收类型的比较:

![](http://upload-images.jianshu.io/upload_images/7275716-02b8c83c48813fa7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

拆完包之后的 Optional其实就是 String 类型。编译器强制使用者在变量为 nil 的时候要进行处理,否则就会报错会崩溃。String! 是为了规避变量一定不为 nil 的情况下却要反复判断是否为 nil 的冗余代码而产生的。例如,我们在使用 IBOutlet 时,一定会定义成 Optiona(!)。**String! 在声明时 String? 完全等价,在使用时 String 完全等价。**

总结一下:

1. Optional的本质是一个包含了 nil 普通类型的枚举,这是为了确保使用者在变量为 nil 的情况下会完成相应的处理;

2. 无论是 Optional(!) 还是 Optional(?) 都是一种Optional,在未设初始值时,默认为nil。Optional(!) 只是给予了自动拆包的权限,省略了判断其值是否为nil的过程,但是不能够保证它的值不为nil;

3. Optional(!) 在声明时 Optional(?) 等价,在使用时具体类型等价;http://blog.tianya.cn/post-7637394-126235876-1.shtml
http://blog.tianya.cn/post-7637394-126235880-1.shtml
http://blog.tianya.cn/post-7637394-126235883-1.shtml
http://blog.tianya.cn/post-7637394-126235886-1.shtml
http://blog.tianya.cn/post-7637394-126235890-1.shtml
http://blog.tianya.cn/post-7637394-126235893-1.shtml
http://blog.tianya.cn/post-7637394-126235896-1.shtml
http://blog.tianya.cn/post-7637394-126235898-1.shtml
http://blog.tianya.cn/post-7637394-126235901-1.shtml
http://blog.tianya.cn/post-7637394-126235904-1.shtml
http://blog.tianya.cn/post-7637394-126235908-1.shtml
http://blog.tianya.cn/post-7637394-126235911-1.shtml
http://blog.tianya.cn/post-7637394-126235916-1.shtml
http://blog.tianya.cn/post-7637394-126235921-1.shtml
http://blog.tianya.cn/post-7637394-126235926-1.shtml
http://blog.tianya.cn/post-7637394-126235933-1.shtml
http://blog.tianya.cn/post-7637394-126235939-1.shtml
http://blog.tianya.cn/post-7637394-126235946-1.shtml
http://blog.tianya.cn/post-7637394-126235955-1.shtml
http://blog.tianya.cn/post-7637394-126235961-1.shtml
http://blog.tianya.cn/post-7637394-126235967-1.shtml
http://blog.tianya.cn/post-7637394-126235976-1.shtml
http://blog.tianya.cn/post-7637394-126235981-1.shtml
http://blog.tianya.cn/post-7637394-126235988-1.shtml
http://blog.tianya.cn/post-7637394-126235998-1.shtml
http://blog.tianya.cn/post-7637394-126236006-1.shtml
http://blog.tianya.cn/post-7637394-126236015-1.shtml
http://blog.tianya.cn/post-7637394-126236026-1.shtml
http://blog.tianya.cn/post-7637394-126236037-1.shtml
http://blog.tianya.cn/post-7637394-126236049-1.shtml
http://blog.tianya.cn/post-7637394-126236061-1.shtml
http://blog.tianya.cn/post-7637394-126236074-1.shtml
http://blog.tianya.cn/post-7637394-126236087-1.shtml
http://blog.tianya.cn/post-7637394-126236097-1.shtml
http://blog.tianya.cn/post-7637394-126236109-1.shtml
http://blog.tianya.cn/post-7637394-126236121-1.shtml
http://blog.tianya.cn/post-7637394-126236133-1.shtml
http://blog.tianya.cn/post-7637394-126236143-1.shtml
http://blog.tianya.cn/post-7637394-126236156-1.shtml
http://blog.tianya.cn/post-7637394-126236163-1.shtml
http://blog.tianya.cn/post-7637394-126236177-1.shtml
http://blog.tianya.cn/post-7637394-126236188-1.shtml
http://blog.tianya.cn/post-7637394-126236200-1.shtml
http://blog.tianya.cn/post-7637394-126236211-1.shtml
http://blog.tianya.cn/post-7637394-126236221-1.shtml
http://blog.tianya.cn/post-7637394-126236233-1.shtml
http://blog.tianya.cn/post-7637394-126236246-1.shtml
http://blog.tianya.cn/post-7637394-126236259-1.shtml
http://blog.tianya.cn/post-7637394-126236269-1.shtml
http://blog.tianya.cn/post-7637394-126236282-1.shtml
http://blog.tianya.cn/post-7637394-126236292-1.shtml
http://blog.tianya.cn/post-7637394-126236305-1.shtml
http://blog.tianya.cn/post-7637394-126236315-1.shtml
http://blog.tianya.cn/post-7637394-126236327-1.shtml
http://blog.tianya.cn/post-7637394-126236340-1.shtml
http://blog.tianya.cn/post-7637394-126236355-1.shtml
http://blog.tianya.cn/post-7637394-126236368-1.shtml
http://blog.tianya.cn/post-7637394-126236382-1.shtml
http://blog.tianya.cn/post-7637394-126236395-1.shtml
http://blog.tianya.cn/post-7637394-126236411-1.shtml
http://blog.tianya.cn/post-7637394-126236424-1.shtml
http://blog.tianya.cn/post-7637394-126236436-1.shtml
http://blog.tianya.cn/post-7637394-126236449-1.shtml
http://blog.tianya.cn/post-7637394-126236462-1.shtml
http://blog.tianya.cn/post-7637394-126236478-1.shtml
http://blog.tianya.cn/post-7637394-126236491-1.shtml
http://blog.tianya.cn/post-7637394-126236502-1.shtml
http://blog.tianya.cn/post-7637394-126236516-1.shtml
http://blog.tianya.cn/post-7637394-126236529-1.shtml
http://blog.tianya.cn/post-7637394-126236544-1.shtml
http://blog.tianya.cn/post-7637394-126236555-1.shtml
http://blog.tianya.cn/post-7637394-126236571-1.shtml
http://blog.tianya.cn/post-7637394-126236584-1.shtml
http://blog.tianya.cn/post-7637394-126236599-1.shtml
http://blog.tianya.cn/post-7637394-126236610-1.shtml
http://blog.tianya.cn/post-7637394-126236622-1.shtml
http://blog.tianya.cn/post-7637394-126236632-1.shtml
http://blog.tianya.cn/post-7637394-126236645-1.shtml
http://blog.tianya.cn/post-7637394-126236656-1.shtml
http://blog.tianya.cn/post-7637394-126236673-1.shtml
http://blog.tianya.cn/post-7637394-126236684-1.shtml
http://blog.tianya.cn/post-7637394-126236697-1.shtml
http://blog.tianya.cn/post-7637394-126236709-1.shtml
http://blog.tianya.cn/post-7637394-126236721-1.shtml
http://blog.tianya.cn/post-7637394-126236732-1.shtml
http://blog.tianya.cn/post-7637394-126236745-1.shtml
http://blog.tianya.cn/post-7637394-126236757-1.shtml
http://blog.tianya.cn/post-7637394-126236769-1.shtml
http://blog.tianya.cn/post-7637394-126236784-1.shtml
http://blog.tianya.cn/post-7637394-126236793-1.shtml
http://blog.tianya.cn/post-7637394-126236808-1.shtml
http://blog.tianya.cn/post-7637394-126236824-1.shtml
http://blog.tianya.cn/post-7637394-126236834-1.shtml
http://blog.tianya.cn/post-7637394-126236848-1.shtml
http://blog.tianya.cn/post-7637394-126236860-1.shtml
http://blog.tianya.cn/post-7637394-126236872-1.shtml
http://blog.tianya.cn/post-7637394-126236887-1.shtml
http://blog.tianya.cn/post-7637394-126236900-1.shtml
http://blog.tianya.cn/post-7637394-126236911-1.shtml
http://blog.tianya.cn/post-7637394-126236922-1.shtml
http://blog.tianya.cn/post-7637414-126236937-1.shtml
http://blog.tianya.cn/post-7637414-126236948-1.shtml
http://blog.tianya.cn/post-7637414-126236958-1.shtml
http://blog.tianya.cn/post-7637414-126236972-1.shtml
http://blog.tianya.cn/post-7637414-126236983-1.shtml
http://blog.tianya.cn/post-7637414-126236995-1.shtml
http://blog.tianya.cn/post-7637414-126237009-1.shtml
http://blog.tianya.cn/post-7637414-126237020-1.shtml
http://blog.tianya.cn/post-7637414-126237035-1.shtml
http://blog.tianya.cn/post-7637414-126237047-1.shtml
http://blog.tianya.cn/post-7637414-126237060-1.shtml
http://blog.tianya.cn/post-7637414-126237072-1.shtml
http://blog.tianya.cn/post-7637414-126237084-1.shtml
http://blog.tianya.cn/post-7637414-126237098-1.shtml
http://blog.tianya.cn/post-7637414-126237109-1.shtml
http://blog.tianya.cn/post-7637414-126237123-1.shtml
http://blog.tianya.cn/post-7637414-126237136-1.shtml
http://blog.tianya.cn/post-7637414-126237152-1.shtml
http://blog.tianya.cn/post-7637414-126237166-1.shtml
http://blog.tianya.cn/post-7637414-126237179-1.shtml
http://blog.tianya.cn/post-7637414-126237190-1.shtml
http://blog.tianya.cn/post-7637414-126237202-1.shtml
http://blog.tianya.cn/post-7637414-126237215-1.shtml
http://blog.tianya.cn/post-7637414-126237230-1.shtml
http://blog.tianya.cn/post-7637414-126237244-1.shtml
http://blog.tianya.cn/post-7637414-126237256-1.shtml
http://blog.tianya.cn/post-7637414-126237269-1.shtml
http://blog.tianya.cn/post-7637414-126237283-1.shtml
http://blog.tianya.cn/post-7637414-126237297-1.shtml
http://blog.tianya.cn/post-7637414-126237310-1.shtml
http://blog.tianya.cn/post-7637414-126237321-1.shtml
http://blog.tianya.cn/post-7637414-126237334-1.shtml
http://blog.tianya.cn/post-7637414-126237347-1.shtml
http://blog.tianya.cn/post-7637414-126237361-1.shtml
http://blog.tianya.cn/post-7637414-126237372-1.shtml
http://blog.tianya.cn/post-7637414-126237386-1.shtml
http://blog.tianya.cn/post-7637414-126237399-1.shtml
http://blog.tianya.cn/post-7637414-126237410-1.shtml
http://blog.tianya.cn/post-7637414-126237428-1.shtml
http://blog.tianya.cn/post-7637414-126237441-1.shtml
http://blog.tianya.cn/post-7637414-126237454-1.shtml
http://blog.tianya.cn/post-7637414-126237467-1.shtml
http://blog.tianya.cn/post-7637414-126237479-1.shtml
http://blog.tianya.cn/post-7637414-126237491-1.shtml
http://blog.tianya.cn/post-7637414-126237502-1.shtml
http://blog.tianya.cn/post-7637414-126237515-1.shtml
http://blog.tianya.cn/post-7637414-126237525-1.shtml
http://blog.tianya.cn/post-7637414-126237534-1.shtml
http://blog.tianya.cn/post-7637414-126237542-1.shtml
http://blog.tianya.cn/post-7637414-126237555-1.shtml
http://blog.tianya.cn/post-7637414-126237564-1.shtml
http://blog.tianya.cn/post-7637414-126237574-1.shtml
http://blog.tianya.cn/post-7637414-126237583-1.shtml
http://blog.tianya.cn/post-7637414-126237593-1.shtml
http://blog.tianya.cn/post-7637414-126237601-1.shtml
http://blog.tianya.cn/post-7637414-126237610-1.shtml
http://blog.tianya.cn/post-7637414-126237618-1.shtml
http://blog.tianya.cn/post-7637414-126237627-1.shtml
http://blog.tianya.cn/post-7637414-126237636-1.shtml
http://blog.tianya.cn/post-7637414-126237645-1.shtml
http://blog.tianya.cn/post-7637414-126237654-1.shtml
http://blog.tianya.cn/post-7637414-126237661-1.shtml
http://blog.tianya.cn/post-7637414-126237670-1.shtml
http://blog.tianya.cn/post-7637414-126237678-1.shtml
http://blog.tianya.cn/post-7637414-126237690-1.shtml
http://blog.tianya.cn/post-7637414-126237698-1.shtml
http://blog.tianya.cn/post-7637414-126237707-1.shtml
http://blog.tianya.cn/post-7637414-126237715-1.shtml
http://blog.tianya.cn/post-7637414-126237723-1.shtml
http://blog.tianya.cn/post-7637414-126237730-1.shtml
http://blog.tianya.cn/post-7637414-126237740-1.shtml
http://blog.tianya.cn/post-7637414-126237749-1.shtml
http://blog.tianya.cn/post-7637414-126237761-1.shtml
http://blog.tianya.cn/post-7637414-126237771-1.shtml
http://blog.tianya.cn/post-7637414-126237784-1.shtml
http://blog.tianya.cn/post-7637414-126237799-1.shtml
http://blog.tianya.cn/post-7637414-126237811-1.shtml
http://blog.tianya.cn/post-7637414-126237825-1.shtml
http://blog.tianya.cn/post-7637414-126237838-1.shtml
http://blog.tianya.cn/post-7637414-126237852-1.shtml
http://blog.tianya.cn/post-7637414-126237865-1.shtml
http://blog.tianya.cn/post-7637414-126237880-1.shtml
http://blog.tianya.cn/post-7637414-126237891-1.shtml
http://blog.tianya.cn/post-7637414-126237903-1.shtml
http://blog.tianya.cn/post-7637414-126237916-1.shtml
http://blog.tianya.cn/post-7637414-126237931-1.shtml
http://blog.tianya.cn/post-7637414-126237943-1.shtml
http://blog.tianya.cn/post-7637414-126237953-1.shtml
http://blog.tianya.cn/post-7637414-126237963-1.shtml
http://blog.tianya.cn/post-7637414-126237970-1.shtml
http://blog.tianya.cn/post-7637414-126237980-1.shtml
http://blog.tianya.cn/post-7637414-126237989-1.shtml
http://blog.tianya.cn/post-7637414-126238000-1.shtml
http://blog.tianya.cn/post-7637414-126238009-1.shtml
http://blog.tianya.cn/post-7637414-126238015-1.shtml
http://blog.tianya.cn/post-7637414-126238026-1.shtml
http://blog.tianya.cn/post-7637414-126238034-1.shtml
http://blog.tianya.cn/post-7637414-126238044-1.shtml
http://blog.tianya.cn/post-7637414-126238070-1.shtml
http://blog.tianya.cn/post-7637414-126238077-1.shtml
http://blog.tianya.cn/post-7637427-126238085-1.shtml
http://blog.tianya.cn/post-7637427-126238094-1.shtml
http://blog.tianya.cn/post-7637427-126238102-1.shtml
http://blog.tianya.cn/post-7637427-126238109-1.shtml
http://blog.tianya.cn/post-7637427-126238118-1.shtml
http://blog.tianya.cn/post-7637427-126238122-1.shtml
http://blog.tianya.cn/post-7637427-126238129-1.shtml
http://blog.tianya.cn/post-7637427-126238135-1.shtml
http://blog.tianya.cn/post-7637427-126238144-1.shtml
http://blog.tianya.cn/post-7637427-126238154-1.shtml
http://blog.tianya.cn/post-7637427-126238162-1.shtml
http://blog.tianya.cn/post-7637427-126238169-1.shtml
http://blog.tianya.cn/post-7637427-126238179-1.shtml
http://blog.tianya.cn/post-7637427-126238189-1.shtml
http://blog.tianya.cn/post-7637427-126238198-1.shtml
http://blog.tianya.cn/post-7637427-126238208-1.shtml
http://blog.tianya.cn/post-7637427-126238217-1.shtml
http://blog.tianya.cn/post-7637427-126238225-1.shtml
http://blog.tianya.cn/post-7637427-126238234-1.shtml
http://blog.tianya.cn/post-7637427-126238244-1.shtml
http://blog.tianya.cn/post-7637427-126238254-1.shtml
http://blog.tianya.cn/post-7637427-126238265-1.shtml
http://blog.tianya.cn/post-7637427-126238273-1.shtml
http://blog.tianya.cn/post-7637427-126238283-1.shtml
http://blog.tianya.cn/post-7637427-126238292-1.shtml
http://blog.tianya.cn/post-7637427-126238302-1.shtml
http://blog.tianya.cn/post-7637427-126238310-1.shtml
http://blog.tianya.cn/post-7637427-126238320-1.shtml
http://blog.tianya.cn/post-7637427-126238331-1.shtml
http://blog.tianya.cn/post-7637427-126238339-1.shtml
http://blog.tianya.cn/post-7637427-126238351-1.shtml
http://blog.tianya.cn/post-7637427-126238358-1.shtml
http://blog.tianya.cn/post-7637427-126238368-1.shtml
http://blog.tianya.cn/post-7637427-126238378-1.shtml
http://blog.tianya.cn/post-7637427-126238388-1.shtml
http://blog.tianya.cn/post-7637427-126238397-1.shtml
http://blog.tianya.cn/post-7637427-126238408-1.shtml
http://blog.tianya.cn/post-7637427-126238416-1.shtml
http://blog.tianya.cn/post-7637427-126238425-1.shtml
http://blog.tianya.cn/post-7637427-126238434-1.shtml
http://blog.tianya.cn/post-7637427-126238443-1.shtml
http://blog.tianya.cn/post-7637427-126238454-1.shtml
http://blog.tianya.cn/post-7637427-126238464-1.shtml
http://blog.tianya.cn/post-7637427-126238471-1.shtml
http://blog.tianya.cn/post-7637427-126238478-1.shtml
http://blog.tianya.cn/post-7637427-126238489-1.shtml
http://blog.tianya.cn/post-7637427-126238494-1.shtml
http://blog.tianya.cn/post-7637427-126238500-1.shtml
http://blog.tianya.cn/post-7637427-126238506-1.shtml
http://blog.tianya.cn/post-7637427-126238511-1.shtml
http://blog.tianya.cn/post-7637427-126238519-1.shtml
http://blog.tianya.cn/post-7637427-126238525-1.shtml
http://blog.tianya.cn/post-7637427-126238533-1.shtml
http://blog.tianya.cn/post-7637427-126238539-1.shtml
http://blog.tianya.cn/post-7637427-126238544-1.shtml
http://blog.tianya.cn/post-7637427-126238551-1.shtml
http://blog.tianya.cn/post-7637427-126238557-1.shtml
http://blog.tianya.cn/post-7637427-126238564-1.shtml
http://blog.tianya.cn/post-7637427-126238572-1.shtml
http://blog.tianya.cn/post-7637427-126238577-1.shtml
http://blog.tianya.cn/post-7637427-126238585-1.shtml
http://blog.tianya.cn/post-7637427-126238591-1.shtml
http://blog.tianya.cn/post-7637427-126238598-1.shtml
http://blog.tianya.cn/post-7637427-126238602-1.shtml
http://blog.tianya.cn/post-7637427-126238610-1.shtml
http://blog.tianya.cn/post-7637427-126238616-1.shtml
http://blog.tianya.cn/post-7637427-126238624-1.shtml
http://blog.tianya.cn/post-7637427-126238630-1.shtml
http://blog.tianya.cn/post-7637427-126238638-1.shtml
http://blog.tianya.cn/post-7637427-126238644-1.shtml
http://blog.tianya.cn/post-7637427-126238653-1.shtml
http://blog.tianya.cn/post-7637427-126238662-1.shtml
http://blog.tianya.cn/post-7637427-126238668-1.shtml
http://blog.tianya.cn/post-7637427-126238677-1.shtml
http://blog.tianya.cn/post-7637427-126238685-1.shtml
http://blog.tianya.cn/post-7637427-126238694-1.shtml
http://blog.tianya.cn/post-7637427-126238701-1.shtml
http://blog.tianya.cn/post-7637427-126238709-1.shtml
http://blog.tianya.cn/post-7637427-126238717-1.shtml
http://blog.tianya.cn/post-7637427-126238724-1.shtml
http://blog.tianya.cn/post-7637427-126238732-1.shtml
http://blog.tianya.cn/post-7637427-126238739-1.shtml
http://blog.tianya.cn/post-7637427-126238746-1.shtml
http://blog.tianya.cn/post-7637427-126238753-1.shtml
http://blog.tianya.cn/post-7637427-126238760-1.shtml
http://blog.tianya.cn/post-7637427-126238768-1.shtml
http://blog.tianya.cn/post-7637427-126238774-1.shtml
http://blog.tianya.cn/post-7637427-126238782-1.shtml
http://blog.tianya.cn/post-7637427-126238790-1.shtml
http://blog.tianya.cn/post-7637427-126238800-1.shtml
http://blog.tianya.cn/post-7637427-126238805-1.shtml
http://blog.tianya.cn/post-7637427-126238814-1.shtml
http://blog.tianya.cn/post-7637427-126238820-1.shtml
http://blog.tianya.cn/post-7637427-126238828-1.shtml
http://blog.tianya.cn/post-7637427-126238836-1.shtml
http://blog.tianya.cn/post-7637427-126238844-1.shtml
http://blog.tianya.cn/post-7637427-126238849-1.shtml
http://blog.tianya.cn/post-7637427-126238858-1.shtml
http://blog.tianya.cn/post-7637427-126238867-1.shtml
http://blog.tianya.cn/post-7637427-126238877-1.shtml
http://blog.tianya.cn/post-7637437-126238890-1.shtml
http://blog.tianya.cn/post-7637437-126238898-1.shtml
http://blog.tianya.cn/post-7637437-126238909-1.shtml
http://blog.tianya.cn/post-7637437-126238920-1.shtml
http://blog.tianya.cn/post-7637437-126238930-1.shtml
http://blog.tianya.cn/post-7637437-126238944-1.shtml
http://blog.tianya.cn/post-7637437-126238955-1.shtml
http://blog.tianya.cn/post-7637437-126238967-1.shtml
http://blog.tianya.cn/post-7637437-126238977-1.shtml
http://blog.tianya.cn/post-7637437-126238985-1.shtml
http://blog.tianya.cn/post-7637437-126238995-1.shtml
http://blog.tianya.cn/post-7637437-126239007-1.shtml
http://blog.tianya.cn/post-7637437-126239018-1.shtml
http://blog.tianya.cn/post-7637437-126239029-1.shtml
http://blog.tianya.cn/post-7637437-126239038-1.shtml
http://blog.tianya.cn/post-7637437-126239044-1.shtml
http://blog.tianya.cn/post-7637437-126239056-1.shtml
http://blog.tianya.cn/post-7637437-126239064-1.shtml
http://blog.tianya.cn/post-7637437-126239076-1.shtml
http://blog.tianya.cn/post-7637437-126239089-1.shtml
http://blog.tianya.cn/post-7637437-126239097-1.shtml
http://blog.tianya.cn/post-7637437-126239109-1.shtml
http://blog.tianya.cn/post-7637437-126239119-1.shtml
http://blog.tianya.cn/post-7637437-126239129-1.shtml
http://blog.tianya.cn/post-7637437-126239138-1.shtml
http://blog.tianya.cn/post-7637437-126239149-1.shtml
http://blog.tianya.cn/post-7637437-126239158-1.shtml
http://blog.tianya.cn/post-7637437-126239166-1.shtml
http://blog.tianya.cn/post-7637437-126239176-1.shtml
http://blog.tianya.cn/post-7637437-126239185-1.shtml
http://blog.tianya.cn/post-7637437-126239192-1.shtml
http://blog.tianya.cn/post-7637437-126239201-1.shtml
http://blog.tianya.cn/post-7637437-126239210-1.shtml
http://blog.tianya.cn/post-7637437-126239220-1.shtml
http://blog.tianya.cn/post-7637437-126239231-1.shtml
http://blog.tianya.cn/post-7637437-126239238-1.shtml
http://blog.tianya.cn/post-7637437-126239246-1.shtml
http://blog.tianya.cn/post-7637437-126239256-1.shtml
http://blog.tianya.cn/post-7637437-126239266-1.shtml
http://blog.tianya.cn/post-7637437-126239279-1.shtml
http://blog.tianya.cn/post-7637437-126239287-1.shtml
http://blog.tianya.cn/post-7637437-126239294-1.shtml
http://blog.tianya.cn/post-7637437-126239303-1.shtml
http://blog.tianya.cn/post-7637437-126239313-1.shtml
http://blog.tianya.cn/post-7637437-126239325-1.shtml
http://blog.tianya.cn/post-7637437-126239336-1.shtml
http://blog.tianya.cn/post-7637437-126239344-1.shtml
http://blog.tianya.cn/post-7637437-126239351-1.shtml
http://blog.tianya.cn/post-7637437-126239358-1.shtml
http://blog.tianya.cn/post-7637437-126239370-1.shtml
http://blog.tianya.cn/post-7637437-126239381-1.shtml
http://blog.tianya.cn/post-7637437-126239391-1.shtml
http://blog.tianya.cn/post-7637437-126239399-1.shtml
http://blog.tianya.cn/post-7637437-126239407-1.shtml
http://blog.tianya.cn/post-7637437-126239418-1.shtml
http://blog.tianya.cn/post-7637437-126239431-1.shtml
http://blog.tianya.cn/post-7637437-126239442-1.shtml
http://blog.tianya.cn/post-7637437-126239453-1.shtml
http://blog.tianya.cn/post-7637437-126239460-1.shtml
http://blog.tianya.cn/post-7637437-126239469-1.shtml
http://blog.tianya.cn/post-7637437-126239479-1.shtml
http://blog.tianya.cn/post-7637437-126239490-1.shtml
http://blog.tianya.cn/post-7637437-126239501-1.shtml
http://blog.tianya.cn/post-7637437-126239508-1.shtml
http://blog.tianya.cn/post-7637437-126239514-1.shtml
http://blog.tianya.cn/post-7637437-126239523-1.shtml
http://blog.tianya.cn/post-7637437-126239534-1.shtml
http://blog.tianya.cn/post-7637437-126239546-1.shtml
http://blog.tianya.cn/post-7637437-126239554-1.shtml
http://blog.tianya.cn/post-7637437-126239563-1.shtml
http://blog.tianya.cn/post-7637437-126239572-1.shtml
http://blog.tianya.cn/post-7637437-126239583-1.shtml
http://blog.tianya.cn/post-7637437-126239594-1.shtml
http://blog.tianya.cn/post-7637437-126239607-1.shtml
http://blog.tianya.cn/post-7637437-126239614-1.shtml
http://blog.tianya.cn/post-7637437-126239622-1.shtml
http://blog.tianya.cn/post-7637437-126239633-1.shtml
http://blog.tianya.cn/post-7637437-126239643-1.shtml
http://blog.tianya.cn/post-7637437-126239655-1.shtml
http://blog.tianya.cn/post-7637437-126239664-1.shtml
http://blog.tianya.cn/post-7637437-126239673-1.shtml
http://blog.tianya.cn/post-7637437-126239682-1.shtml
http://blog.tianya.cn/post-7637437-126239691-1.shtml
http://blog.tianya.cn/post-7637437-126239702-1.shtml
http://blog.tianya.cn/post-7637437-126239714-1.shtml
http://blog.tianya.cn/post-7637437-126239724-1.shtml
http://blog.tianya.cn/post-7637437-126239734-1.shtml
http://blog.tianya.cn/post-7637437-126239742-1.shtml
http://blog.tianya.cn/post-7637437-126239750-1.shtml
http://blog.tianya.cn/post-7637437-126239764-1.shtml
http://blog.tianya.cn/post-7637437-126239771-1.shtml
http://blog.tianya.cn/post-7637437-126239781-1.shtml
http://blog.tianya.cn/post-7637437-126239790-1.shtml
http://blog.tianya.cn/post-7637437-126239800-1.shtml
http://blog.tianya.cn/post-7637437-126239813-1.shtml
http://blog.tianya.cn/post-7637437-126239826-1.shtml
http://blog.tianya.cn/post-7637437-126239833-1.shtml
http://blog.tianya.cn/post-7637437-126239842-1.shtml
http://blog.tianya.cn/post-7637437-126239850-1.shtml


4. 一定要确保 Optional 不为 nil 的情况下才可直接拆包,不然会引发崩溃。

如何理解Swift中Optional的!和?

上一篇:使用ZBrush在模型上雕刻精致的细节


下一篇:如何巧妙使用ZBrush中的Image Plane插件