最近经常要把Mac没看完的pdf,转移到iPad上看。由于不想同步又不想安装任何应用,就想出来这个招数:
- Mac要和iPad在同一局域网内
- 打开Terminal,切换到pdf所在的目录
- 输入
python -m SimpleHTTPServer 8000
,利用python的SimpleHTTPServer模块直接在Mac上打一个Web服务器
- 在iPad的Safari上访问Mac的Web服务器,点击pdf文件就可以打开了
- 如果iPad上装了iBooks应用,也可以保存到iPad上
附小广告一则:唱吧iOS团队诚招iOS工程师,推荐成功即奖励6000元现金或iPhone 6一部,详见这篇blog。
App Store中, In-App-Purchase是一种很好的免费->收费的转化方式,iOS 6里面又新增了一些支持,由于NDA的原因,现在不会讨论iOS 6.这里只介绍一下MKStoreKit.
MKStoreKit
MKStoreKit可以极大的简化IAP的代码,提供了很实用的抽象接口,并且还提供了服务器验证receipts的代码,非常方便。MKStoreKit使用zLib licensing,使用者只要保证源代码里面不移除原作者的版权信息即可。
基本用法
这里只介绍一下Non-Consumable类型的用法,其它的用法请参考头文件里面的方法声明:
检查是否购买了某一个Feature:
1 2 3 4
| if([MKStoreManager isFeaturePurchased:kFeatureID]) { }
|
购买某一个Feature:
1 2 3 4 5 6 7 8 9
| [[MKStoreManager sharedManager] buyFeature:kFeatureAId onComplete:^(NSString* purchasedFeature) { NSLog(@"Purchased: %@", purchasedFeature); } onCancelled:^ { NSLog(@"User Cancelled Transaction"); }];
|
一些提示:
- 建议在程序启动时,先调用
[MKStoreManager sharedManager]
,这样就可以尽早地得到products list,避免用户直接购买时无法得到IAP的信息
- 如果得到的是invalidProducts,建议先删除设备上的App,再重新Build and Run
- 开发测试时,记得调用
[[MKStoreManager sharedManager] removeAllKeychainData]
,来移除IAP的信息,否则即使删除app重新build后,购买信息会依然存在。Release的时候要记得删除该行代码。建议使用条件编译来解决这个麻烦。
附小广告一则:唱吧iOS团队诚招iOS工程师,推荐成功即奖励6000元现金或iPhone 6一部,详见这篇blog。
如何自动对齐代码:
想要对齐下面的js代码:
1 2 3
| var joe = 'joe'; var johnny = 'johnny'; var quaid = 'quaid';
|
按Control + Command + a后,自动按等号对齐
如何选择你喜欢的Color Scheme:
如何进行列选择:
Shift + Control + Up/Down
快速跳转至某行:
- Control + g,之后输入行号
- 或者Command + p,输入:加行号
如何管理代码中的TODO:
- 安装SublimeTODO
- Command + Shift + P,输入TODO后,选择Show TODOs: Open files only,之后会生成一个TODO Results页签
- 按n移动至下一个,p移动至上一个,回车直接跳转到对应的文件并定位到该行
- 可以检测到的pattern有: TODO, NOTE, FIXME, CHANGED
- 参考这个视频
Zen Coding的快捷键:
Control + Option + Enter
选中括号内的内容:
Command + Shift + B之后按Command + Shift + S
附小广告一则:唱吧iOS团队诚招iOS工程师,推荐成功即奖励6000元现金或iPhone 6一部,详见这篇blog。
1.在本地运行server:
jekyll --server
2.新建一个post:
rake post title="hello_world"
3.新建一个page:
rake poge name="about.md"
4.如何格式化代码:
参考Code Highlighting
附小广告一则:唱吧iOS团队诚招iOS工程师,推荐成功即奖励6000元现金或iPhone 6一部,详见这篇blog。