一、目錄結(jié)構(gòu)
- 目錄結(jié)構(gòu)分析
- Controllers : 控制器文件
- Views : View文件
- Models : 模型文件
- Extensions : 一些分類(lèi)擴(kuò)展
- Constant : 常量
- Other : 工具類(lèi)和第三方庫(kù)
- Resources : 資源文件
- Services : API服務(wù)
Networking
網(wǎng)絡(luò)請(qǐng)求是采用Alamofire+Moya,只需要?jiǎng)?chuàng)建一個(gè)enum
去實(shí)現(xiàn)Moya
的TargetType
協(xié)議童谒,然后配置URL
和parameters
等即可完成網(wǎng)絡(luò)請(qǐng)求帜平。詳情可以看APIConstant.swift
Moya
創(chuàng)建一個(gè)service的類(lèi),負(fù)責(zé)網(wǎng)絡(luò)請(qǐng)求
相關(guān)文章 Moya用法
Moya網(wǎng)絡(luò)抽象層
SnapKit
參考文章 自動(dòng)布局SnapKit的詳細(xì)使用
知識(shí)點(diǎn)
- 使用
fileprivate
聲明屬性和方法,只能在本文件中被訪問(wèn)殖属,包括在extension className
擴(kuò)展文件中也能訪問(wèn);
而private
聲明的方法和屬性只能在該類(lèi)中訪問(wèn)瓦盛,不能再再擴(kuò)展文件中訪問(wèn)洗显;
internal
(默認(rèn)訪問(wèn)級(jí)別,internal修飾符可寫(xiě)可不寫(xiě));
public
可以被任何人訪問(wèn)原环。但其他module中不可以被override和繼承挠唆,而在module內(nèi)可以被override和繼承;
open
可以被任何人使用,包括override和繼承嘱吗。
從高到低排序如下:
open > public > interal > fileprivate > private
空合運(yùn)算符
??
a??b
a是一個(gè)可選值玄组,a不為nil 取a的值,a為nil 取b得值泛型運(yùn)用
// MARK: - 擴(kuò)展UITableView, 不用傳入identifier參數(shù) identifier參數(shù)為類(lèi)名
public extension UICollectionView {
public func dequeueReusableCell<T: Reusable>(indexPath: IndexPath) -> T {
return self.dequeueReusableCell(withReuseIdentifier: T.reuseIdentifier, for: indexPath) as! T
}
func registerClass<T: UICollectionViewCell>(_: T.Type) where T: Reusable {
self.register(T.self, forCellWithReuseIdentifier: T.reuseIdentifier)
}
}
public protocol Reusable: class {
static var reuseIdentifier: String { get }
}
extension Reusable {
static var reuseIdentifier : String {
return String(describing: self)
}
}