ReactiveCocoa 模式 —— RACScheduler
Feb 18 2015
Uncategorized
No Post Excerpt
ReactiveCocoa 模式 —— Signals
Jan 25 2015
Uncategorized

start

在小伙伴们都玩了好久RAC之后,我才开始研究如何使用-,-思来想去发现这东西看上去似乎很复杂,用起来确实也很复杂,里面涉及到很多概念是常规iOS或是OS X开发过程中完全没用到过的,同时RAC也将函数式编程的思想带到了iOS开发中。

在查找资料的过程中,找到了一个网站ReactiveCocoa Design Patterns这个网站里面对RAC的一些基础观念进行了比较好的解释,所以为了让自己能更好的学习,就决定翻译翻译,也希望能对大家学习过程中有帮助。

本文翻译自ReactiveCocoa Design Patterns

注意:下文中,为了方便大家理解,部分单词没有翻译,当然如果需要知道中文的,如下:

  • signal:信号
  • sequence:顺序序列
  • stream:流
  • pull-driven:拉驱动
  • push-driven:推驱动
  • value:值
  • error:错误
  • complete:完成

Signals

Signal是构造FRP程序最基础的砖块,一般来说,我们的程序组织一系列的signal,决定这些signal的值从何而来,signal之间如何连接,以及值如何在signal中传递。我们可以认为signal是一个管道,我们的应用程序是一个复杂的管道系统,将事件放入管道系统的输入端,从输出端得到结果。

学习iOS上QQ的聊天数据库
Jan 17 2015
Uncategorized

start

这篇内容完全是意外啊,起因是酱紫的

某日看见一个Mac的app打折大礼包(bundle)买了以后里面有个神奇的iPxx设备管理的app,叫iMazing,然后用iMazing尝试了下,发现居然可以看app里面的数据,然后出于手闲好奇的心里-,-我就点开了大TX的扣扣看了一眼,于是就产生了下面的一系列意外发现

iMazing长下面酱紫,用起来赶脚还是很不错的啊,于是我顺手点开了扣扣,出于学习的目的,研究了一下

iMazing Home

发现iMazing很强力啊,把整个app和数据都dump出来了,以及这次我们要讲的主角,消息记录,嘛大企鹅的消息记录在别的平台上似乎都是加密过的,iOS上却没有加密,这让人有点意外,不过估计也比较相信水果公司的沙盒是很安全的吧,不过这也给我们点机会一窥企鹅里面到底是啥样的。

另外本文完全自我yy的,水平有限写的不好的地方大家拍砖即可

iOS
巧用goto语句来进行C语言中的错误处理
Nov 16 2014
Uncategorized

start

很多人不喜欢goto,认为goto为代码结构带来了很多灾难,但是用的好的话,其实goto同样能够优雅的解决很多问题,比如下面说的这个

这个算是最近看的代码之髓第六章的一个读书扩展了,对于C里面,如何更好的处理错误,其中提到了一点Linux内核编码风格里面提到可以用goto来更好的集中处理错误,减少冗余代码,详情可以看Linux内核编码风格中的第七章——集中处理函数的退出

怎么做

内核编码风格第七章

第七章原文大意是这么说的

尽管有的人不喜欢goto,但是呢其实编译器里面还是一直用着无条件跳转这一和goto等价的东西。在一个函数里面如果有多个地方都需要进行清理和提交任务的时候,goto的好处就显现出来了。

c
自定义iOS导航动画
Sep 3 2014
Uncategorized

start

冒个泡,体现下存在感,哈哈哈哈,最近发现iOS自带的动画效果总是困扰着我-,-比如,iOS7上返回时,会自动加一个半透明的层做渐变感,比如返回的时候,总是整个view一起动的,动画过程中,我需要隐藏和显示导航栏等这些要求,原生的动画总是无法满足这些小小的要求!(ノ`□´)ノ⌒┻┻

经过数小时上网找资料,发现大神们要不就是一笔带过,要不就是懒得讲很多,于是,发现还是自己写比较科学啊┓( ̄∇ ̄)┏,下面我们来尝试做一个

做的方法

制作方法还是按照古法炮制,继承一个NSNavigationController然后重写其中的pop和push方法以达到我们的目的,在我的理解,导航控件他的pop和push方法,实现了在他自己的控制器栈中实现不断的出栈和入栈的操作,然后播放一小段动画,愉悦下大家,那么我们要做的事情就是去掉原来的动画,做pop,push的动作,然后播放我们自己的动画

截图工具

做动画之前,必须要有的一个东西就是,我们要让什么东西来动呢,那导航上必然是两个ViewController中的View的内容喽,那么我们就需要对UIView进行扩充,实现获取View中的内容。

iOS
Resizable Image 使用时遇到的透明的线
Apr 3 2014
Uncategorized

start

最近略忙啊。。。于是blog稍微暂停了一段时间啊,好吧今天来个短小精干的,说说最近遇到的一个问题了,其实可能大家都遇到过了,一个比较普通的问题,在使用Resizable Image和Stretchable Image的时候,出现透明线的问题。

问题观察和分析

iOS开发过程中啊,我们经常用到的一个东西就是Resizable Image或者叫Stretchable Image的图像,我来粗糙翻译下可以拉伸的图像,用来填充我们的界面,为啥呢,因为一个可以拉升的图像,我们只需要指定需要从那个位置开始拉升,那么我们就能使用一个图片,创造一堆不同大小的控件了。

观察

扯了好多闲,我们来看看到底是啥样的吧,因为,好麻烦不打算开demo了,于是我选择附上so转载图片的连接,并无耻的使用提问者的图片,SO问题原链,这篇原链上,大神们的讨论也解决了这个问题。

问题截图

虽说是截了别人图片我还是很厚道的加了点标注,重新创造了下,上面本来不应该会有的东西就是那几条跟消息气泡颜色不同的线了。

iOS
用起 Voice Over
Mar 10 2014
Uncategorized

start

好久木有出现了,大家放心cocoa drawing还在长线更新,最近搬家了,从美丽的彩云之南搬到了高端大气上档次的深圳。于是中间好多天都没有开电脑,好多天就都没有接着写了,以前一直OS X的,今天换换口味来次iOS。

最近看了一个感觉可能平时大家用的少的东西——Voice Over~就是碰一下屏幕就会说话的东西,神奇吧(魂淡,你就是尽找些没人耍的东西写么XDDD),嗯嗯,很神奇啊,so为啥说用的少呢-,-毕竟为特殊人群考虑的太少了,不过麻花的两个app做的还不错(ps,图形解锁直接废了XDDDDDDD能说这是bug么?),之前说找几个一直没找到合适的应用来看下别人做的效果,昨天不小心点了麻花的应用发现做的效果确实挺不错的。好,接下来我们看看怎么用起来。

用起Voice Over

平常要是我们用苹果原生的控件的话,那基本上是天生自带Voice Over的,也就是所有的东西都配合的天衣无缝,但是呢,要是某些小按钮啊,神马的,我们没有妥妥的设置好label之类的东西,更甚者用image之类的东西来当按钮的,那就不一定run的好了,那下面我们先讲下怎么处理原生控件的,接着讲下怎么自定义的,再接着讲下一种优化策略,本文一定程度上参考了Accessibility Programming Guide for iOS大家也可以看看这篇Guide了解更多。

iOS
把NSImage画在圆圈里面
Feb 1 2014
Uncategorized

start

新年快乐啊,虽然在努力码cocoa drawing guide part4,不过短线更新个小的,怎么把NSImage画到圆圈里面。

我们都知道,NSImageView是四四方方的,丑死了。。。为了让我们的UI好看点,大家必定是下了很多苦功夫的啊,所以今天就分享一个非常普通而又实用的东西,把NSImage画到一个圆里面。其实之前google了好会儿了,觉得网上大家的方法都很麻烦,所以还是决定自己DIY了:)

效果如下:

圆形

这一篇的内容就刚好用到了drawing guide part4——图像的内容,我会告诉我我也参考了下PaintCode么:P

Cocoa Drawing Guide学习part3——颜色AND透明
Jan 28 2014
Uncategorized

Start

cocoa drawing guide学习第三集~总算是写到第三集了啊,看来drawing guide的学习分享应该是能完成的,不过看了看目录貌似还有第四第五第六第七第八的-,-…慢慢来:)

上一期想了想,总觉得是自己再笨拙的翻译,不过后来想了想,看了看,想了想,再看了看,再想了想,觉得自己还是吧一些重要的东西找了出来,也顺着把guide走了一遍,要是只是选出重点,或者选出怎么用來,那就是Cookbook了,所以大家别嫌啰嗦啊,我也是跟着学的,哈哈,不罗嗦了,正片开始。

这一集的故事是颜色和透明的,用好色,用好透,那画出来的界面,肯定杠杠滴。

颜色和透明基础知识

Cocoa的颜色支持构建在Quartz的顶层,NSColor类提供了创建和操作颜色的接口,其他的类提供了颜色和颜色空间的管理,以及在UI上选择颜色的控件。

关于OS X里面的颜色解析,颜色理论和颜色管理,还要看看Color Management OverviewColor Programming Topics,-,-要看的东西真是越来越多了,也不知道看完能不能成cocoa大师啊。

斯坦福第一课里面MVC通信方式整理
Jan 28 2014
Uncategorized

start

前些天在iTunes U里面看到今年斯坦福更新了iOS7的课程,以前也看了部分不过也是由于各种原因,没有全部看完,所以打算这次顺着当美剧追了:P。

Cocoa Drawing Guide那个也还在长线更新着,只是最近项目有点紧张(奇葩吧年前居然还紧张了)哈哈,大坑还是要自己填,不过还是短线写点东西了,表示我还健在XDDDD

在cocoa上开发了一段时间以后对于第一课里面MVC涉及到的通信方法都有了一定的了解,刚好顺便就总结下了。