samwei12's blog

Stay hungry, stay foolish.

原文链接

问题

  • 今天在查找之前的 C++ 笔记时,突然发现之前的资料全没了,整个 Cpp 文件夹内就只剩下了三个文件,怎么形容当时的心情呢,应该说是一下就跌倒了谷底,感觉之前的心血全白费了,有种深深的挫败感.
阅读全文 »

原文链接

背景

最近在项目开发中,需要针对 Jenkins 项目进行配置,Jenkins 的 job 配置采用的是 xml,在维护配置模板的过程中就遇到了问题,因为逐步发现配置灵活性超出了字符串的范畴,本文旨在简单介绍 Python 下模板引擎模块 Jinja2 的使用。

什么是 Jinja2?

Jinja2 是一个 Python 的功能齐全的模板引擎。它有完整的 unicode 支持,一个可选的集成沙箱执行环境,被广泛使用,以 BSD 许可证授权。

以上是官方说明,简单来说,它提供了替换功能(变量替换)和一些强大的特性(控制流、继承等),可以快速生成数据文件,使得业务与数据分离开来,满足一些灵活多变的配置需求。

阅读全文 »

原文链接

我们都知道ARC中weakassign或者说unsafe_unretained最大的不同就是设置weak属性后,系统会在对象被释放后自动将指向对象的指针置为nil,而assign则会产生一个悬空指针,那么系统是如何实现这一机制呢?我们能否自己模拟系统对weak的实现呢?

阅读全文 »

原文链接

近期在Mac项目中有一个处理鼠标拖拽事件的需求, 大致处理流程是这样的:

  1. 从 NSView 继承得到一个子类
  2. 覆盖处理拖拽事件相关方法
  3. 注册拖拽事件
阅读全文 »

原文链接

七牛云是个很好用的图床,但是 Mac 下并没有什么很好用的客户端,每次上传都需要在网页上手动一个个传文件,十分麻烦,于是仔细看了下七牛云的部分文档,打算使用QRSBox来自动上传图片.

阅读全文 »

原文链接

最近在看ios programming - the big nerd ranch guide 这本书,其中第24章介绍了如何使用系统接口来实现 State Restoration. 示例部分介绍的是如何针对 UINavigationController 来进行保存和还原状态, 然后额外的练习题部分是 UITabbarController 的状态保存和恢复,可是在这里却一直遇到问题, 导致程序返回时UITabbarController始终无法还原状态,本文记录下如何使用State Restoration和UITabbarController所需的额外处理。

阅读全文 »

原文链接

AVCaptureSession阻塞主线程问题

前阵子程序中出现了一个奇怪的 bug,在 iOS 系统上,页面弹出的时候会卡很久,相机始终黑屏,大概6-7秒钟,跟踪具体每个步骤花费时间的时候发现在viewWillDisappear:中开销最大,这其中只调用了一个相机关闭的代码:

1
2
3
if ([[self.avCameraManager session] isRunning]) {
[[self.avCameraManager session] stopRunning];
}

仔细看了文档之后,发现问题出在 stopRunning这里,

阅读全文 »

原文链接

最近项目中有一个需求是需要手动点击相机对焦,这里由于相机对焦部分需要一个类似于系统对焦框一样的缩放动画,同时动画时长为0.3秒,因此这里就有一个很普遍的需求,如果用户在0.3秒内继续点击对焦会怎么样?

动画部分代码很简单,如下:

1
2
3
4
5
6
7
8
9
10
self.transform = CGAffineTransformMakeScale(2.0f, 2.0f);
[UIView animateWithDuration:0.3f delay:0.0f options:UIViewAnimationOptionCurveLinear
animations:^{
self.transform = CGAffineTransformIdentity;
}
completion:^(BOOL finished){
if (finished) {
[self hideFocus];
}
}];

对焦框在0.3秒内进行两倍缩小到正常尺寸的一个动画,之后隐藏。

阅读全文 »

原文链接

Xmarks简介

Xmarks 是一款浏览器书签同步工具,它可以实现不同设备,不同浏览器之间的书签同步,并且是免费的。

有人会说,我们为什么需要一款专门的书签同步工具呢?Safari 自带的 iCloud 书签同步,Chrome 自带的同步设置不都是挺好用的吗? 我个人选择 Xmarks 的原因是,经常需要在 Mac 机器和 Windows 机器之间进行切换,Safari 当然是挺好用的,但是 Windows 下没得用,切换到 Windows 机器只能选择使用 Chrome 或者 Firefox, 就存在书签同步的需求了。当然你也可以说每个平台都是用 Firefox 或者 Chrome 即可,但就我个人而言,这两款浏览器在 Mac 下的便捷性目前看来还是比不上 Safari 的。

阅读全文 »
0%