Felix's Space

Never send to know for whom the bells tolls; it tolls for thee.

缓存算法-LRU

iOS

1,FIFO算法

FIFO(First in First out),先进先出。 在FIFO Cache设计中,核心原则就是:如果一个数据最先进入缓存中,则应该最早淘汰掉。也就是说,当缓存满的时候,应当把最先进入缓存的数据给淘汰掉。在FIFO Cache中应该支持以下操作;

  1. get(key):如果Cache中存在该key,则返回对应的value值,否则,返回-1;
  2. set(key,value):如果Cache中存在该key,则重置value值;如果不存在该key,则将该key插入到到Cache中,若Cache已满,则淘汰最早进入Cache的数据。

可以利用一个双向链表保存数据,当来了新的数据之后便添加到链表末尾,如果Cache存满数据,则把链表头部数据删除,然后把新的数据添加到链表末尾。在访问数据的时候,如果在Cache中存在该数据的话,则返回对应的value值;否则返回-1。如果想提高访问效率,可以利用hashmap来保存每个key在链表中对应的位置。  

17 Oct 2015 #缓存算法 #LRU

React入门-002

React

1,PropTypes

组件的属性可以接受任意值,字符串、对象、函数等等都可以。 组件类的PropTypes属性是用来验证组件实例的属性是否符合要求:

var MyTitle = React.createClass({
  propTypes: {
title: React.PropTypes.string.isRequired,
  },

  render: function() {
 return <h1> {this.props.title} </h1>;
   }
});

var title = "hello";

ReactDOM.render(
  <MyTitle title={title} />,
  document.body
);

24 Sep 2015 #React #入门

React入门-001

React

鉴于iOS行情的不好,而且越来越多的公司要求web app和hybrid app的开发。最近发觉React非常的热门,看上去充满希望,当然应该好好学一下。从技术角度,可以满足好奇心,提高技术水平;从职业角度,有利于求职和晋升,有利于参与潜力大的项目。

于是在github上下载了入门的React Demo,开始入门学习!

其中React地址 https://github.com/facebook/react.

React Demo 地址:https://github.com/ruanyf/react-demos

9 Sep 2015 #React #入门

iOS 多线程锁

iOS

dispatch_semaphore

信号量是一个整形值并且具有一个初始计数值,并且支持两个操作:信号通知和等待。当一个信号量被信号通知,其计数会被增加。当一个线程在一个信号量上等待时,线程会被阻塞(如果有必要的话),直至计数器大于零,然后线程会减少这个计数。

在GCD中有三个函数是semaphore的操作,分别是:

  • dispatch_semaphore_create   创建一个semaphore
  • dispatch_semaphore_signal   发送一个信号
  • dispatch_semaphore_wait    等待信号

  简单的介绍一下这三个函数,第一个函数有一个整形的参数,我们可以理解为信号的总量,dispatch_semaphore_signal是发送一个信号,自然会让信号总量加1,dispatch_semaphore_wait等待信号,当信号总量少于0的时候就会一直等待,否则就可以正常的执行,并让信号总量-1,根据这样的原理,我们便可以快速的创建一个并发控制来同步任务和有限资源访问控制。

27 Aug 2015 #iOS #Lock

编程小助手 - 学习编程的有效工具

iOS

编程小助手 - 学习编程的有效工具

https://itunes.apple.com/cn/app/bian-cheng-xiao-zhu-shou-xue/id1007208297?mt=8

4+

Swift语言如今如火如荼,势头一发不可收拾。作为iOS开发者都应该开始学习swift语言,本软件主要针对Swifter们开发入门,基础知识温故知新的小工具。

无论你是在坐车途中还是在买单排队,所有细小的时间你都可以充分利用起来,学习充电。

本工具不仅提供了Swift基础语法,还有详尽的进阶指导资源。

PS:业余制作,巩固复习下swift语法

个人博客地址: http://felixmlians.github.io/

23 Jul 2015 #iOS #app

IDFA 3选项释义

iOS

Everything has come to its usual state now. Simply upload your binary as you’ve been doing this while, and broadly classify IDFA in two categories:

  1. publisher: You use third-party ad-networks library to display ad. Choose the 1st option in IDFA -> “Serve advertisements within the app”. You’re a publisher since you show ads, but do not perform advertising for your own app.

  2. Advertiser: You use third-party libraries to track conversions for your app, as well as track ‘goals’ in your app. You directly do not show ads in your app. Choose the 2nd & 3rd option in IDFA -> “Attribute this app installation to a previously served ad”. AND “Attribute an action taken within this app to a previously served advertisement”.

  3. Mixed: You track conversions for your app, as well as display ads in your app. Choose all three options.

11 Jun 2015 #iOS #IDFA

iOS 砸壳,获取头文件,反编译工具

iOS

  1. AppCrackr,dumpdecrypted 下载地址:https://github.com/stefanesser/dumpdecrypted/archive/master.zip进行砸壳。

  2. 使用class-dump获取头文件

  3. 使用Hopper Disassembler IDA Pro 进行反编译

21 May 2015 #iOS #decrypt

iOS NSDateFormatter

iOS

格式化参数如下:

    G: 公元时代,例如AD公元
    yy: 年的后2位,12
    yyyy: 完整年,2012
    MM: 月,显示为1-12
    MMM: 月,显示为英文月份简写,如 Jan
    MMMM: 月,显示为英文月份全称,如 Janualy
    dd: 日,2位数表示,如02
    d: 日,1-2位显示,如 2
    EEE: 简写星期几,如Sun
    EEEE: 全写星期几,如Sunday
    aa: 上下午,AM/PM
    H: 时,24小时制,0-23
    K:时,12小时制,0-11
    m: 分,1-2位
    mm: 分,2位
    s: 秒,1-2位
    ss: 秒,2位
    S: 毫秒

常用日期组合:

yyyy-MM-dd HH:mm:ss.SSS

yyyy-MM-dd HH:mm:ss

yyyy-MM-dd

MM dd yyyy

6 Apr 2015 #iOS #NSDateFormatter

iOS 证书以及迁移到新电脑

iOS

WARNING:Distribution Certification只有配置证书的电脑才可使用,因此即使导出导出Keychain安装到其他电脑上,其他电脑也不可能具有证书的权限。(新电脑要发布版本需要重新生成证书)

1. Certification(证书)

证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:

  • Developer Certification(开发证书)

安装在电脑上提供权限:开发人员通过设备进行真机测试。 可以生成副本供多台电脑安装;

  • Distribution Certification(发布证书)

安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序。

不可生成副本,仅有配置该证书的电脑才可使用;(副本制做介绍在下面Keychain中介绍)

1 Mar 2015 #iOS #certification