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
iOS Swift开发的一些坑的更多相关文章
- iOS——Swift开发中的单例设计模式(摘译,非原创)
最近在开发一个小的应用,遇到了一些Objective-c上面常用的单例模式,但是swift上面还是有一定区别的,反复倒来倒去发现不能按常理(正常的oc to swift的方式)出牌,因此搜索了一些帖子 ...
- IOS&swift开发常用的网站
swift转OC:http://iswift.org/try OC转swift:https://www.myappconverter.com/ swift语言视频:http://space.bilib ...
- iOS Swift 开发语言之初接触,纯代码创建UIView,UITableView,UICollectionView
1. 初始化Label设置AttributeString override func viewDidLoad() { let label = UILabel(frame:CGRect(x:,y:,wi ...
- Swift开发iOS应用过程中的问题和解决记录
虚拟机里安装OSX+XCode开发环境 用真机的请直接跳过这个部分. 主要是在VitrualBox里安装mac系统和xcode,参考这篇教程,VirtualBox的版本是4.3.18 r96156,O ...
- iOS开发的那些坑
最近重新拿起了iOS的开发,使用OC和Swift混编,碰到了一些比较棘手的问题,在这里记录下来,方便自己以后或他人不再入坑.这篇文章的内容包含: UITableViewCell的真实结构在iOS的环境 ...
- Cordova - 与iOS原生代码交互2(使用Swift开发Cordova的自定义插件)
在前一篇文章中我介绍了如何通过 js 与原生代码进行交互(Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)),当时是直接对Cordova生成的iOS工程项目进行编辑操作的(添加 ...
- iOS - Swift iOS 开发体系
1.iOS 开发技术体系 iOS 开发技术体系图: 层级 主要框架 Cocoa Touch UIKit 等 Media Core Graphics .OpenGl ES.Core Animation ...
- iOS开发遇到的坑之五--解决工程已存在plist表,数据却不能存入的问题
想写这篇博客其实在一两个月前开发遇见的时候就想把这个问题写成博客的,奈何自己一直懒外加一直没有时间,就把这个事情给耽搁了,好在当时知道下自己一定要把这个问题给描述出来,免得以后其他人遇到这个问题会纠结 ...
- Search Ads 已经在美国区上线 - iOS 移动开发周报(46)
Search Ads 已经在美国区上线 - iOS 移动开发周报(46) 新闻 Search Ads 上线 苹果的 AppStore 搜索广告终于 正式上线了 https://developer.ap ...
随机推荐
- ROS_Kinetic_19 群机器人框架示例(micros swarm framework)
ROS_Kinetic_19 群机器人框架示例(micros swarm framework) 官方网址:http://wiki.ros.org/micros_swarm_framework 这个包是 ...
- Cocos2D:塔防游戏制作之旅(六)
现在,创建一个新的类用来表示炮塔.添加新的类文件,名称为Tower,继承于CCNode. 替换Tower.h文件为如下内容: #import "cocos2d.h" #import ...
- iOS编程中的音频知识(一):文件格式和数据格式,哦!天哪
要明白实际上每个音频文件都有2各部分组成:它的文件格式(或称之为音频容器),和它的数据格式(或称之为音频编码). 文件格式(audio containers)描述文件自身的格式.实际内部的音频数据可以 ...
- 【一天一道LeetCode】#88. Merge Sorted Array
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given t ...
- UNIX环境高级编程——进程基本概述
一.什么是进程 从用户的角度来看进程是程序的一次执行过程.从操作系统的核心来看,进程是操作系统分配的内存.CPU时间片等资源的基本单位.进程是资源分配的最小单位.每一个进程都有自己独立的地址空间与执行 ...
- android:layout_alignleft layout_toleftof区别,详解RelativeLayout布局属性
转载请注明博客地址. 最近看博客看到有关于RelativeLayout布局的解释,有的解释很多是错误的.因此有必要对每一个常见的布局属性进行描述.以下解释全部都是逐行进行测试的. 首先把常用的布局分组 ...
- log4j.xml示例
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SY ...
- TCP状态转换
最近笔试遇到一个题目:如果tcp建立连接时第三次握手失败,tcp会做何操作?该问题的本质是判断我们对tcp的状态转换是否能有比较深刻的理解.只要理解了下面的状态转换图,很容易回答上述问题. 在此,将& ...
- 详解ebs接口之客户配置文件导入(二)
------------------------------------ -- 1a. Setup the Org_id ------------------------------------ ex ...
- Linux 安装python爬虫框架 scrapy
Linux 安装python爬虫框架 scrapy http://scrapy.org/ Scrapy是python最好用的一个爬虫框架.要求: python2.7.x. 1. Ubuntu14.04 ...