0. 效果
- 输入电影名搜索得到结果列表,包含电影封面、标题、年份
- 点击行进入相应的IMDb详情页
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210208172524313.JPEG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1MDg3NDI1,size_16,color_FFFFFF,t_70)
1. 简介
1.1 API
1.2 数据结构
- 根据Json设计数据结构如下:
- Swift 4引入了
Codable
协议,与NSCoding
协议不同的是:如果自定义的类中全都是基本数据类型、基本对象类型,无需再实现编解码,只需要在自定义的类声明它遵守Codable
协议即可
- 原Json中的
Type
与Swift的关键字冲突了,使用CodingKeys
替换变量名
struct MovieResult: Codable {
let Search: [Movie]
}
struct Movie: Codable {
let Title: String
let Year: String
let imdbID: String
let _Type: String
let Poster: String
enum CodingKeys: String, CodingKey {
case Title, Year, imdbID, _Type = "Type", Poster
}
}
2. UI![在这里插入图片描述](https://img-blog.csdnimg.cn/20210208160827539.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1MDg3NDI1,size_16,color_FFFFFF,t_70)
2.1 组件及方法
- 搜索框Text Field
@IBOutlet var field: UITextField!
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
serachMovies()
return true
}
f