Submitted by gouki on 2014, December 12, 11:07 PM
笔记,从OC翻译成swift。遇到点问题
NSDictionary 和 nameRange 上有点小问题
NSString *plainText = [NSString stringWithFormat:@"%@ test" , @"click"];
NSMutableAttributedString *styleText = [[NSMutableAttributedString alloc] initWithString:plainText]
NSDictionary *attr = @{NSFontAttributeName: [UIFont boldSystemFontOfSize : statusLabel.font.pointSize ]};
NSRange nameRange = [plainText rangeOfString: title ]
[styleText setAttributes:attr range:nameRange ]
statusLabel.attributeText = styleText;
这是OC的代码,转成swift的时候有点问题,第1是NSDictionary不知道怎么写了。。。array好象无法一下子转成NSDictionary,第2就是在用rangeOfString的时候,plainText。因为是NSString,因此可以直接使用rangeOfString,但swift定义字符串时,var plainText = "test" + "click" 这是string不是NSString...
所以查了点资料最后改成下面的代码
var plainText = title! + " button pressed";
var styleText = NSMutableAttributedString(string: plainText);
var attributes : NSDictionary = [NSFontAttributeName : UIFont.boldSystemFontOfSize( statusLabel.font.pointSize )]
let nameRange : NSRange = (plainText as NSString).rangeOfString(title!);
//styleText.setAttributes(attributes, ))
styleText.setAttributes(attributes, range: nameRange);
statusLabel.attributedText = styleText;
----
上面的那个plainText as NSString就OK了。不过我需要再尝试一下,我是不是可以直接var plainText:NSString = title! + " button pressed";
[确认OK,如果真的需要用rangeOfString,应该还是在之前先得强类型一下比较好]
-----
今天算是注意了,所以下次应该可以记得,比如Int(xxxx),强制 转换, (sring as NSString) 也可以作一个转换
Flutter | 评论:0
| 阅读:13618
Submitted by gouki on 2014, December 9, 5:20 PM
常常遇到这样的问题,出门在外,突然收到消息说程序出错了,打开网页一看,居然是xxxx.php 第 n行处理xxx有错误。这时候,如果有电脑,还好办一点。如果没有怎么办?
手机上我装 了issh ,远程上线后直接看一下好象也是个办法,这时候,上面的几个命令就有用了。cat / head /tail / vim
cat -n xxxx.php ,先大概的瞄一下。
如果是前10行,默认head就可以看了,如果超出一点,比如前20行,head -n 20 xxx.php
如果是尾部,tail -n 20 xxxx.php (tail 命令更适合用来查看log文件,如tail -f xxx.log,你就可以盯着屏幕了)
看起来这样都能看到问题,可如果不知道文件行数怎么办?
cat xxx.php |wc -l,先看一下行数
如果想直接改掉,就vim xxx.php,然后 :30 ,直接跳至30行,直接xxxx就改了
嗯,如果是自己的项目这样可以,如果不行,还是安稳点,不过这些小技巧还是可以记一下的
苹果相关 | 评论:0
| 阅读:18718
Submitted by SubZero on 2014, December 8, 9:28 PM
不得不说,就目前为止,我MAC下面必装 的软件就是MacJournal了,当然 我这是指工具软件。在没有Onenote的前提下,它是我用到现在最舒服的软件之一,虽然他有很多让我不爽的地方,但好歹,他能够让我记事。
不要和我提什么evernote之类的,它不适合我。
在翻开Macjounral的时候,突然看到了一年前有人留 下的一段话:
XML/HTML代码
- 我个人推荐学习顺序。
- 基础部分
- 一、UIView及其子类 UILabel UITextFiled UIImageView UITextView UITableView [重点] 等等以UI开头的视图
- 特别需要搞明白UITableView,一通百通。
- 二、NSObject 子类, 就是NSString NSNumber NSArray NSDictionary == 以NS的类型对象 。
- 三、对象的@property属性和其涉及的内存机制,ARC虽好,但是我不推荐不懂非ARC。
- 四、Animation 动画效果,包括UIView提供的动画效果,CA动画效果,CI动画效果,更深层次的3D动画效果。
- 五、BLOCK和GCD。
正好借着双11的机会买了不少书,终于又可以看起来了。
话说这些年乱看看了不少东西,却没有深入,都是浅尝即止。这次是逼着自己每天必看。每天至少半小时(本想夸海口要1小时或者2小时,想想又不敢保证,但至少半小时还是能抽得出)
Tags: ios
Flutter | 评论:0
| 阅读:14776
Submitted by gouki on 2014, November 20, 4:22 PM
在写本文前我不得不说一句,其实我是不想用smarty的,我想尝试一下twig,但是phpstorm的Twig插件真要命,卡成翔,所以我只能用smarty。为什么不用prado了呢?官方说不支持了,我晶啊
在使用smarty的时候官方的代码和例子看上去很美,不过要注意几点
1、用yii2-smarty,还是必须得用layout,如果你不支持layout文件,默认就是/layouts/main.php,天啊,为什么是PHP?而且在这里面也还真的能用PHP代码。整个都崩溃了
2、你可以指定layout文件,比如:main.tpl,OK你必须得象PHP文件一样,得写{$this->head()},{$this->startBody()}{$this->endPage()}等,否则 ClientScript功能就无法使用
3、如果你指定layout=false,那么,就不支持ClientScript了。因为你incude file='xxx.tpl',在每一个独立的文件里都必须要象2中一个个的this->head(),this->endPage全写上
4、再来一个bug:{registerJsFile url=''},这个函数有BUG
原来是:
PHP代码
- public function functionRegisterJsFile($params, $template)
- {
- if (!isset($params['url'])) {
- trigger_error("registerJsFile: missing 'url' parameter");
- }
-
- $url = ArrayHelper::remove($params, 'url');
- $key = ArrayHelper::remove($params, 'key', null);
- $depends = ArrayHelper::remove($params, 'depends', null);
- if (isset($params['position']))
- $params['position'] = $this->getViewConstVal($params['position'], View::POS_END);
-
- Yii::$app->getView()->registerJsFile($url, $depends, $params, $key);
- }
改成为:
PHP代码
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- public function functionRegisterJsFile($params, $template)
- {
- if (!isset($params['url'])) {
- trigger_error("registerJsFile: missing 'url' parameter");
- }
-
- $url = ArrayHelper::remove($params, 'url');
- $key = ArrayHelper::remove($params, 'key', null);
- $params['depends'] = ArrayHelper::remove($params, 'depends', null);
- if (isset($params['position']))
- $params['position'] = $this->getViewConstVal($params['position'], View::POS_END);
-
- Yii::$app->getView()->registerJsFile($url, $params, $key);
- }
其实就是$params['depends']这个参数。registerJsFile只能接受3个参数,但事实上用了4个参数,所以调整一下即可
Tags: yii2, smarty, twig
PHP | 评论:0
| 阅读:26286
Submitted by gouki on 2014, November 18, 1:50 PM
早些年用vmware fusion的时候,就感觉速度不行。总是觉得卡卡顿顿的,后来用了pd后才发现,真心不是一个量级的
vmware我分配了2G内存,才跑起来不卡,我用PD,512M都能飞一样的。
但早期我删除的vmware的时候,是直接把vmware fusion.app拖到垃圾筒里了,结果。它的虚拟网卡还在,这让我很烦恼,如今,有一个比较方便的方法:
XML/HTML代码
- rm -rf /Library/Application\ Support/VMware/
- rm -rf /Library/Preferences/VMware\ Fusion
- rm -rf ~/Library/Application\ Support/VMware\ Fusion
- rm -rf ~/Library/Caches/com.vmware.fusion
- rm -rf ~/Library/Preferences/VMware\ Fusion
- rm -rf ~/Library/Preferences/com.vmware.fusion.LSSharedFileList.plist
- rm -rf ~/Library/Preferences/com.vmware.fusion.LSSharedFileList.plist.lockfile
- rm -rf ~/Library/Preferences/com.vmware.fusion.plist
- rm -rf ~/Library/Preferences/com.vmware.fusion.plist.lockfile
- rm -rf ~/Library/Preferences/com.vmware.fusionDaemon.plist
- rm -rf ~/Library/Preferences/com.vmware.fusionDaemon.plist.lockfile
- rm -rf ~/Library/Preferences/com.vmware.fusionStartMenu.plist
- rm -rf ~/Library/Preferences/com.vmware.fusionStartMenu.plist.lockfile
运行之前,记得先sudo -s 进入管理员模式。
上面的数据不是我平空捏造,它来自官方:http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=1017838
同时,该文里还有手动删除 3.x的办法,我想,现在2014年应该没有3.x的用户了吧?
Tags: vmware
Flutter | 评论:1
| 阅读:16939