iOS Swiftが開発したいくつかのピット

2133 ワード

0、人は募集しにくい、特にお金のない小さなチームに対して、多くのios開発者はswiftの経験がなく、経験があるのも深くない.
0.1、言語unwrapピット、自動修正のヒントがありますが、コードプロセスがスムーズではないと感じます. 
1、Realmの欠点:最近filterが多く使って、realmの本当の欠点を発見して、その検索文法のキーワードと構造は通常の標準SQLと完全に一致していません.これは本当にshitで、filter部分のドキュメントを真剣に見て、何度も試してこそ、本当に正しい質問文の構造を見つけることができます.
2、UIButtonのリモート画像取得のピットは、いろいろな方法を試してみましたが、最後に彼に画像をプリセットしなければならないことに気づきました.リモート画像のロードに成功することができます.いいピットですね.Androidでも似たような問題を見たことがあるようです.
3、Alamosfireのファイルアップロード、参考:https://stackoverflow.com/questions/26121827/uploading-file-with-parameters-using-alamofire
// import Alamofire
func uploadWithAlamofire() {
  let image = UIImage(named: "bodrum")!

  // define parameters
  let parameters = [
    "hometown": "yalikavak",
    "living": "istanbul"
  ]

  Alamofire.upload(multipartFormData: { multipartFormData in
    if let imageData = UIImageJPEGRepresentation(image, 1) {
      multipartFormData.append(imageData, withName: "file", fileName: "file.png", mimeType: "image/png")
    }

    for (key, value) in parameters {
      multipartFormData.append((value?.data(using: .utf8))!, withName: key)
    }}, to: "upload_url", method: .post, headers: ["Authorization": "auth_token"],
        encodingCompletion: { encodingResult in
          switch encodingResult {
          case .success(let upload, _, _):
            upload.response { [weak self] response in
              guard let strongSelf = self else {
                return
              }
              debugPrint(response)
            }
          case .failure(let encodingError):
            print("error:\(encodingError)")
          }
  })
}

4、NavigationViewControllerのTabBarViewControllerの内蔵ViewControllerがNavigationButtionItemを設定する場合、TabBarVCはNavigationVCのスタックトップVCであるため、NavagationItemを操作する
     let b = UIBarButtonItem( image:#imageLiteral(resourceName: "post_message"), style:.plain, target:self, action:#selector(CommunityViewController.postClick(_:)))
        

    self.tabBarController?.navigationItem.rightBarButtonItem = b