5月10号,CocoaPods发布了1.0.0版本,本文将介绍升级CocoaPods之后iOS项目的配置变化。
1 Podfile变化
新版CocoaPod要求必须在Podfile中标识“target”,即针对的项目名,如下:
1 | source 'https://github.com/CocoaPods/Specs.git' |
陈文强的博客
5月10号,CocoaPods发布了1.0.0版本,本文将介绍升级CocoaPods之后iOS项目的配置变化。
新版CocoaPod要求必须在Podfile中标识“target”,即针对的项目名,如下:
1 | source 'https://github.com/CocoaPods/Specs.git' |
在使用MySQL存储微信用户昵称时,有时会发生报错。
Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1
这是因为有些Emoji使用了4字节的UTF8字符,而MySQL默认只支持3字节的UTF8,所以报出以上错误。
由于我们的网站后端使用Go语言,如何在Golang+MySQL环境下解决这个问题,以下是我想到的3种解决方案:
①支持4字节的UTF8字符集是utf8mb4,但要求MySQL版本为5.5.3及以上,若不是,请升级到较新版本
②修改database、table和column字符集
1 | ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; |
③修改mysql配置文件my.cnf(windows为my.ini)
(找不到my.cnf的位置?看这里
MacOS下
Linux下
Windows下
)
老实说,在以往的开发中一般很少考虑时区问题。一来因为以往的项目不论用户还是服务器都在国内,不存在时差;二来服务器一般都设定了正确的时区,所以在整个项目中直接使用Local时间是没有问题的。但这次有些不同:项目部署到云服务器的Docker后,发现存入MySql数据库中的时间比本地时间慢8小时。
貌似是很简单的问题——MySQL存入了UTC时间,但究竟什么原因?如何解决?还是费了不少功夫。
①首先怀疑是MySQL设定问题,然而Golang后端与MySQL的连接字符串已经设定了时间存取方式,如下"root:123456@tcp(127.0.0.1:3306)/wxshop_dev?charset=utf8&parseTime=True&loc=Local"
而且在本地测试是不存在时差问题的,那么初步判断应该是部署环境的设定问题。
KVO是个好东西,但使用不当将导致巨坑——甚至应用崩溃都不在话下。下面就是一个典型案例。
使用第三方框架ViewDeck实现侧滑出现隐藏View的功能。具体步骤为:
①创建IIViewDeckController
(带有leftController和centerController)
1 | // ViewController.m |
iOS开发中的一大课题是研究和排查关于证书和推送的各种问题,以下是一些比较重要但容易被忽略的点。
A:如果程序是运行在前台的状态下,收到远程推送时不会有任何提示,这是苹果对iOS系统设定的逻辑,无法改变。但是可以通过以下方式灵活处理:
①在application:didReceiveRemoteNotification:
方法中将远程推送转换为本地通知,虽然不能在屏幕顶端弹出提示,但是还是可以显示在系统通知栏且发出提示音的
1 | - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo |
相比HTML原生的select控件,bootstrap提供的drop-down控件不仅更好看,在各个浏览器下的样式更统一,而且可以添加很多个性化的设置,比如单按钮/分裂式、各种尺寸、向上弹出等等。
然而bootstrap并没有提供很便捷的使用方法,要想创建一个这样的drop-down控件,至少需要10到20行左右的HTML代码,之后添加数据、添加事件还需要用JQuery直接操作DOM结点,一两个还好,写多了绝对把人逼疯。
手写drop-down实例:
1 | <div class="btn-group"> |
目前比较流行的Web端文件上传插件大多使用了Flash或HTML5技术,比如WebUploader。一个比较极端的情况是同时不具备以上环境,比如没有装Flash插件的IE8,基本上只剩下javascript模拟表单这一条路了。以下介绍一种比较简单的,利用CSS重写原生input(type=”file”)控件样式,实现文件异步上传的方法。
这里参考了input(file)浏览按钮美化提供的方法。
需要注意的是:IE9以下不支持opacity(透明度)属性,需要单独设置filter:alpha(opacity=0);
1 | input[type=file] |
安装MySQL 5.26.6 for Mac后,在Console中可以正常连接到本地Database,但使用Workbench/Navicat连接就会出现61错误。
检查数据库的各项配置均正常,推测可能是root账户密码为空造成的,Console中使用命令mysqladmin -u root password "123456"
将密码修改为123456,故障依旧。