iOS Swift开发的一些坑
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(_:)))
- elf.tabBarController?.navigationItem.rightBarButtonItem = b
分类:
Coding
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!