Skip to content

快速上手swift开发?请参考swift工程基础开发模型。该工程demo展示了怎么布局工程文件和开发中的基本知识点,可以用于参考或者拿来直接用

License

Notifications You must be signed in to change notification settings

dengchaojie/DevelopmentModelOfSwiftProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

swift工程基础开发模型

展示了怎么布局工程文件和开发中的基本知识点,可以用于参考或者拿来直接用

工程文件布局

请先参考下图,在看下面的说明:

工程文件布局图片

  • 业务文件夹:里面按MVVM架构划分。例如登录业务、首页业务、我的业务
  • ApiUrl:定义后端的baseUrl和接口名称等
  • CustomKey:定义key、id、通知的name等
  • Base文件夹:里面包含BaseVC文件夹、BaseView文件夹、Extention文件夹、tabBarController、BaseNavigationController等
  • Service文件夹:独家的工具库、对系统Kit或者第三方库的封装。例如定位、通讯录、网络、存储等
  • OCBridgeHeader.h:导入oc的头文件,给swift类用

基本知识点

  • 定义全局常量
let user_login = "user/login"  //在所有的swift文件中,都可以使用
  • 布局view
//pod 'SnapKit'
lbAmt.snp.makeConstraints { (make) in
    make.top.equalTo(38  * kWidthAdapter6)
    make.height.equalTo(32 * kWidthAdapter6)
    make.centerX.equalToSuperview()
}
  • 闭包
var blockBtnToTouched: (() -> Void)?  //声明
viewNew.blockBtnToTouched = {self.pushSettings()}//实现
//触发实现
guard let block = blockBtnToTouched else {
	return
}
block()
  • 网络请求和解析json
//pod 'Alamofire',封装
import Alamofire
import SwiftyJSON

class NetworkingService: NSObject {
    
    /// 网络工具类单例
    static let shared = NetworkingService()

    func post(path pathObj: String,
              parameters parametersObj: [String : Any]?,
              response responseObj: (@escaping (_ value: JSON?, _ errMsg:String?) -> ())
        ) {
        print("request == " + pathObj)
        print(parametersObj ?? "parameters is nil")

        let url = ServerBaseURL + pathObj
        
        Alamofire.request(url, method: HTTPMethod.post, parameters: parametersObj, encoding: JSONEncoding.default).responseJSON { (response) in
            print("response == " + pathObj)
            
            switch response.result
            {
                case .success(let value):
                    let json = JSON(value)
                    print(json)
                    responseObj(json, nil)
                case .failure(let error):
                    print(error)
                    responseObj(nil, error.localizedDescription)
            }
        }
    }
}
//pod 'SwiftyJSON',解析json
let dict = json!["data"].dictionaryValue
self?.dcView.txtAmt = dict["loanMonery"]?.stringValue
self?.dcView.txtValueRepayment = dict["loanCurrentMonery"]?.stringValue
self?.dcView.txtValueDay = dict["repayDay"]?.stringValue

请参考swift工程基础开发模型demo

About

快速上手swift开发?请参考swift工程基础开发模型。该工程demo展示了怎么布局工程文件和开发中的基本知识点,可以用于参考或者拿来直接用

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published