<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jaceson</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jaceson]]></copyright><item><title><![CDATA[[IOS] crash reports的种类]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/25025531</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/25025531</guid><author>jaceson</author><pubDate>Mon, 05 May 2014 09:47:44 +0800</pubDate><description><![CDATA[一、跟IOS有关的：基本上这类crash就是违反IOS规范而bei]]></description><category></category></item><item><title><![CDATA[lua setmetatable和__index]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/19030159</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/19030159</guid><author>jaceson</author><pubDate>Mon, 10 Feb 2014 09:58:44 +0800</pubDate><description><![CDATA[写了个小例子，可以帮助了解setmetatable和__index基本使用及其意义。

代码如下:

  local _a1 = {20, 1, key1 = "hello", key2 = "world", lang = "lua"}
  print("the table _a1:")
  for _,v in pairs(_a1) do
      print(v)
  end]]></description><category></category></item><item><title><![CDATA[IOS之instancetype和id的区别]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/18989547</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/18989547</guid><author>jaceson</author><pubDate>Sat, 08 Feb 2014 17:13:42 +0800</pubDate><description><![CDATA[1、instancetype不可以跟id那样，作为参数进行传递，只可以作为方法的返回值
2、当一个类返回相同类的实例使可以使用instancetype]]></description><category></category></item><item><title><![CDATA[【IOS7新特征1】UIView动力、TextKit文本编辑、多任务增强]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/18667471</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/18667471</guid><author>jaceson</author><pubDate>Wed, 22 Jan 2014 17:26:38 +0800</pubDate><description><![CDATA[无论是对于开发者或用户来说IOS7都是非常重要的一次更新，IOS7对UI进行了彻底的重新设计。另外为了创建2D和2.5游戏，IOS7引进了一套全新的动画系统。在IOS7中，多任务的增强、点对点的连接，以及其他一些重要的特征都足以使IOS7意义非凡。
下面来细数一下IOS7的新特征：]]></description><category></category></item><item><title><![CDATA[KVC/KVO实现原理]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/18517715</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/18517715</guid><author>jaceson</author><pubDate>Sun, 19 Jan 2014 21:56:36 +0800</pubDate><description><![CDATA[键值编码和键值观察使根据isa-swizzling技术来实现的，主要依据runtime的动态能力。
当某个类的对象第一次被观察时，系统就会在运行期间冬天地创建该类的一个派生类，在这个派生类中重写基类中任何被观察属性的setter方法。派生类在被重写的setter方法实现真正的通知机制。基于设置属性会调用setter方法，而通过重写就获得了kvo需要的通知机制。当然前提是要通过遵循KVO的属性设置]]></description><category></category></item><item><title><![CDATA[NSNumber和NSValue对基础数据类型的对象化封装]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/18513309</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/18513309</guid><author>jaceson</author><pubDate>Sun, 19 Jan 2014 20:44:57 +0800</pubDate><description><![CDATA[由于Objective-C中常用的数据容器，如NSArray，NSDictionary等，只能处理Objective-C中的对象级别的数据类型，对于C中的很多数据类型，如int，float等，无法直接处理，针对这个问题，Objective-C提供了两种存储数据的对象NSNumber和NSValue，能将C中的基本数据类型，包括数值型和结构体型的数据转化成Objective-C可以处理的对象。
N]]></description><category></category></item><item><title><![CDATA[NSDictionary中objectForKey和valueForKey]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/18500709</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/18500709</guid><author>jaceson</author><pubDate>Sun, 19 Jan 2014 11:32:48 +0800</pubDate><description><![CDATA[objectForKey返回指定key的value，若没有这个key返回nil
valueForKey同样是返回指定key的value
一般来说key可以是任意字符串组合，如果key不是以@符号开头，这时候valueForKey:等同于objectForKey:，如果以@开头，去掉key里的@然后用剩下部分作为key执行[super valueForKey:]。
NSDictionary *]]></description><category></category></item><item><title><![CDATA[IOS中动态方法决议]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/18455465</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/18455465</guid><author>jaceson</author><pubDate>Sun, 19 Jan 2014 11:09:36 +0800</pubDate><description><![CDATA[objective-c提供了一种名为动态方法决议的手段，使得我们可以在运行时动态地为一个selector提供实现。我们只要实现+resolveInstanceMethod:和+resolveClassMethod:方法，并在其中为指定的selector提供实现即可（通过调用运行时函数class_addMethod来添加）。这连个方法都是NSObject中的类方法，其原型为：
+ (BOOL)re]]></description><category></category></item><item><title><![CDATA[IOS中关于多继承]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/18454763</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/18454763</guid><author>jaceson</author><pubDate>Sat, 18 Jan 2014 17:54:18 +0800</pubDate><description><![CDATA[首先，object-c不能够多继承，那么有没有其他方式替代？有，一种是伪继承，另一种是@protocol委托方式来实现
1、伪继承
尽管在object-c中不再提供多继承，但它提供了另外一种解决方案，使对象可以响应在其他类中实现的消息，这种方案叫做消息转发，它可以使一个类响应另外一个类中实现的消息
在一般情况下，发送一个无法识别的消息会产生一个运行时的错误，导致应用程序崩溃，但是注意，在崩溃]]></description><category></category></item><item><title><![CDATA[id，NSObject，id<NSObject>区别]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/18454473</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/18454473</guid><author>jaceson</author><pubDate>Sat, 18 Jan 2014 17:07:10 +0800</pubDate><description><![CDATA[1、id foo1;
2、NSObject *foo2;
3、id foo3;]]></description><category></category></item><item><title><![CDATA[id和NSObject *的区别和联系]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/18454345</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/18454345</guid><author>jaceson</author><pubDate>Sat, 18 Jan 2014 17:05:29 +0800</pubDate><description><![CDATA[在IOS的SDK头文件中，能看到一些定义，在objc.h中，可以看到id的定义如下
typedef struct objc_class *Class
typedef struct objc_class{
Class isa;
}*id;
在NSObject.h中，可以看到NSObject类的定义如下
@interface NSObject{
Class isa
}


+ (]]></description><category></category></item><item><title><![CDATA[IOS开发之_bridge, _bridge_transfer和_bridge_retained]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/18264689</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/18264689</guid><author>jaceson</author><pubDate>Tue, 14 Jan 2014 15:43:45 +0800</pubDate><description><![CDATA[自Xcode4.2开始导入ARC机制后，为了支持对象间的转型，Apple又增加了许多转型用的关键字。
id obj = [[NSObject alloc] init];
void *p = (_bridge void *)obj;
id o = (_bridge id)p;
将objective-C的对象类型用_bridge转换为void*类型和使用_unsafe_unretained关键]]></description><category></category></item><item><title><![CDATA[frame,bounds,center三者的含义]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/18263377</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/18263377</guid><author>jaceson</author><pubDate>Tue, 14 Jan 2014 15:02:37 +0800</pubDate><description><![CDATA[1、frame属性是相对于父容器的定位坐标
2、bounds属性针对于自己，指明大小边框，默认点为（0, 0）,而宽和高与frame宽和高相等
3、center属性是针对与frame属性的中心点坐标
4、当frame变化时，bounds和center相应变化
5、当bounds变化时，frame会根据新bounds的宽和高，在不改变center的情况下，进行重新设定
6、center永远]]></description><category></category></item><item><title><![CDATA[ARC和非ARC 之间的转换方法]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/17962971</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/17962971</guid><author>jaceson</author><pubDate>Tue, 07 Jan 2014 16:57:44 +0800</pubDate><description><![CDATA[1，选择项目中的Targets，选中你所要操作的Target，
2，选Build Phases，在其中Complie Sources中选择需要ARC的文件双击，
     并在输入框中输入：-fobjc-arc，如果不要ARC则输入：-fno-objc-arc]]></description><category></category></item><item><title><![CDATA[Mysql中文乱码问题完美解决方案]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/17838671</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/17838671</guid><author>jaceson</author><pubDate>Sat, 04 Jan 2014 10:02:50 +0800</pubDate><description><![CDATA[MySQL会出现中文乱码的原因不外乎下列几点：
1.server本身设定问题，例如还停留在latin1
2.table的语系设定问题(包含character与collation)
3.客户端程式(例如php)的连线语系设定问题
强烈建议使用utf8!!!!
utf8可以兼容世界上所有字符!!!!
一、避免创建数据库及表出现中文乱码和查看编码方法
1、创建数据库的时候：CREATE D]]></description><category></category></item><item><title><![CDATA[MySQL：讨人喜欢的 MySQL replace into 用法（insert into 的增强版）]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/17838479</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/17838479</guid><author>jaceson</author><pubDate>Sat, 04 Jan 2014 09:50:44 +0800</pubDate><description><![CDATA[讨人喜欢的 MySQL replace into 用法（insert into 的增强版）

在向表中插入数据的时候，经常遇到这样的情况：1. 首先判断数据是否存在； 2. 如果不存在，则插入；3.如果存在，则更新。

在 SQL Server 中可以这样处理：
   if not exists (select 1 from t where id = 1)
      insert in]]></description><category></category></item><item><title><![CDATA[ImportError: No module named MySQLdb]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/17785579</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/17785579</guid><author>jaceson</author><pubDate>Fri, 03 Jan 2014 10:59:12 +0800</pubDate><description><![CDATA[ImportError: No module named MySQLdb

该错误是源于我们没有安装Python连接MySQL所需的MySQLdb库而引起。




MySQL是最流行的开源数据库之一，但在Python标准库中并没有集成MySQL接口程序，MySQLdb是一个第三方包，需独立下载并安装。Python连接MySQL的关键之处在于设置数据库连接，在连接成功之后，其实不管后]]></description><category></category></item><item><title><![CDATA[python BeautifulSoup 安装]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/17764355</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/17764355</guid><author>jaceson</author><pubDate>Thu, 02 Jan 2014 20:00:24 +0800</pubDate><description><![CDATA[windows下面  BeautifulSoup 安装 ：

安装包到 ：http://www.crummy.com/software/BeautifulSoup/#Download 下载

文档：http://www.crummy.com/software/BeautifulSoup/documentation.html  有中文文档

下载后解压， 然后进入目录执行 ：

 1]]></description><category></category></item><item><title><![CDATA[定时器]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/17761387</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/17761387</guid><author>jaceson</author><pubDate>Thu, 02 Jan 2014 17:33:49 +0800</pubDate><description><![CDATA[在编写服务进程的时候，往往需要定时落地一些数据，这就需要定时来执行一些操作，然后python中并没有合适的定时器，就自己实现
import threading,time
class Timer(threading.Thread):
def __init__(self, fn, args=(), sleep=0, lastDo=True):
threading.Thread.__init(s]]></description><category></category></item><item><title><![CDATA[MD5]]></title><link>https://blog.youkuaiyun.com/jaceson/article/details/17761005</link><guid>https://blog.youkuaiyun.com/jaceson/article/details/17761005</guid><author>jaceson</author><pubDate>Thu, 02 Jan 2014 17:11:12 +0800</pubDate><description><![CDATA[import hashlib
import os
src = "teststring"
print hashlib.md5(src).hexdigest().upper()
#hexdigest()为十六进制，digest为二进制]]></description><category></category></item></channel></rss>