手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2014年09月的文章

一月回顾

总感觉好象本月没做啥事情啊,其实上个月也没做啥事情,只是为什么都得到1点多才睡呢?真奇怪

 
本月做的事情太少了,或者说都是碎片化的事情,比如花上一晚上写个微信投票啥的,解决别人几十个BUG,埋掉了别人的一些坑之类的
 
真心感觉没有什么可以做的。这一个月就这么浑浑噩噩的过去了。然后就最近这几天在看看Swift,在朋友的帮忙下看看几千行的OC代码,感觉不能急进,还是慢慢来吧
 

swift initwithnibname

本篇是个笔记

在参考oc代码的时候,有一个initWithNibName方法,在使用swift重写的时候,发现,如果super.init,就会报错,参考了网上很多代码,有人说,重写init方法。不能用override,要用required,结果也是无效

所幸stackflow上面已经有人提出了,说是不能用    init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) 这种方法,只能用 init(NSCoder),网上也有很多人写了例子。

但好象每一个版本的xcode 测试版都不太正常,所以,有的例子就是:func init(coder code:NSCoder!),但实际在使用的时候发现它有提示,说是必须要required,而且NSCoder!不要加感叹号。

于是我最后的代码就是:

XML/HTML代码
  1. required init(coder decoder: NSCoder){  
  2.     super.init(coder: decoder)  
  3. }  

 

搞定

 参考:

1、http://blog.johnregner.com/post/93071481303/ios-programming-in-swift-chapter-1

2、http://stackoverflow.com/questions/25267907/initwithnibname-does-not-implement-superclass-swift

 

Tags: swift

typecho Stat 插件的小BUG

在使用Stat插件时,发现代码中存在一个小BUG,是对Columns not found的判断有问题,原代码写的是:

XML/HTML代码
  1. 'Mysql' == $type && 1051 == $code  

但事实上,如果你使用的是PDO,$code 还应该加上 42S22,所以上述代码就应该改成这样了

PHP代码
  1. ('Mysql' == $type && (1054 == $code || $code == '42S22'))  

然后就可以安装成功了。

该插件的信息是:

XML/HTML代码
  1. /**  
  2.  * 页面浏览次数统计插件  
  3.  * @package    Stat  
  4.  * @author     Hanny  
  5.  * @version    1.0.2  
  6.  * @dependence 10.8.15-*  
  7.  * @link       http://www.imhan.com  
  8.  * 历史版本  
  9.  * version 1.0.2 at 2010-07-03  
  10.  * 终于支持前台调用了  
  11.  * 接口支持Typecho 0.8的计数  
  12.  * 增加SQLite的支持  
  13.  * version 1.0.1 at 2010-01-02  
  14.  * 修改安装出错处理  
  15.  * 修改安装时默认值错误  
  16.  * version 1.0.0 at 2009-12-12  
  17.  * 实现浏览次数统计的基本功能  
  18.   
  19.  */  

不过由于这个版本比较早,就将就一下啦

 

让人吃药的max_input_vars

在某个项目中,每次提交都丢了部分数据,觉得非常奇怪,开始的时候以为是数据量过大,但后来又觉得不应该,因为如果是数据量过大,要么就是提交失败,要么就是直接报错啊?

但事实上我每次提交都是成功的,但print_r($_POST)的时候,总丢了不少的数据,这是为什么呢?

于是,将http头中的form内容全部copy出来,查看了一下,发现共是1200多行。打印POST的时候,只有1000行,咦,这不科学啊?少了200多行?

google了一下,原来,PHP有这么一个配置:

XML/HTML代码
  1. ; How many GET/POST/COOKIE input variables may be accepted  
  2. max_input_vars = 1000  

而它的默认值 是1000,好吧,如果不是这次意外,根本不会发现项目中存在的这个BUG,毕竟要提交1000多个参数还是有难度的。顺便说一下:param[]=1&param[]=2是属于两个参数。所以如果你提交的项目中有多个数组,每个数组又有不少值的话,你就真的要小心了

手贱,将max_input_vars 改成5000,问题解决。。

------

回顾,这种因为偷懒的事情往往出现在哪里呢?

1、ajax提交,不管三七二十一,将某堆数据 serializeArray(),jquery的这个功能,偶尔真心会让人吃药。

2、日程管理和广告排期管理,这时候input的key确实 有可能会超过1000,但我还是建议先序列化再存到一个字段提交更安心 吧?

------
OVER

thinkphp模板中的Load好象有BUG

在thinkPHP的模板中,有几个tag标签都是用来引入js和css的,比如:import/css/js/load之类的,经过测试,好象load这个Tag有BUG

比如:<load href="/assets/static/wap/css/reset.css"/>,加载一个CSS文件,这个没问题,但如果使用<load href="/assets/static/wap/css/reset.css?ver=1"/>,这种就直接失效了。

当然如果你使用<css file="xxxx?ver=1" />是有效的

看了下代码,好象在没有明确标记类型的时候,程序判断后缀名失效了。<css>标签是主动告诉import程序,我的类型是css,而load是根据代码判断的,因此,对于load应该主动加上type="css",或者,修改程序:

大小: 54.98 K
尺寸: 500 x 276
浏览: 1601 次
点击打开新窗口浏览全图

看划线的地方,这里应该先basename,把?或者其他带有版本的信息先去除干净才OK。

或许这是一个bug,或许,就是提示你应该主动加类型。