<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sfjsxhb的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sfjsxhb</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sfjsxhb]]></copyright><item><title><![CDATA[证书pem文件生成]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/51356960</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/51356960</guid><author>sfjsxhb</author><pubDate>Mon, 09 May 2016 22:41:53 +0800</pubDate><description><![CDATA[pem文件是服务器向苹果服务器做推送时候需要的文件，主要是做服务器的小伙伴们要用，下面介绍一下pem文件的生成。

打开Keychain Access,在Certificates里面找到上篇文章中介绍的包含推送的证书。分别将certificate和private key导出得到.p12文件。例如：Apple
 Development Push Services > Export “Apple]]></description><category></category></item><item><title><![CDATA[ReactiveCocoa概述及编程思想简章]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/51198713</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/51198713</guid><author>sfjsxhb</author><pubDate>Wed, 20 Apr 2016 10:42:38 +0800</pubDate><description><![CDATA[1.ReactiveCocoa简介
ReactiveCocoa（简称为RAC）,是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称，因此很多苹果框架喜欢以Cocoa结尾。
2.ReactiveCocoa作用

在我们iOS开发过程中，当某些事件响应的时候，需要处理某些业务逻辑,这些事件都用不同的方式来处理。比如按钮的点击使用action，ScrollV]]></description><category></category></item><item><title><![CDATA[JS调用OC的理解与总结]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/50902132</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/50902132</guid><author>sfjsxhb</author><pubDate>Wed, 16 Mar 2016 10:15:42 +0800</pubDate><description><![CDATA[首先声明，在这里我只是谈谈对JS调用OC方法的两种方式的理解，并不涉及具体实现，
至于实现的代码网上可以搜到很多。我认为学习任何东西，对概念的理解是应该放在首位的，
有些东西你“吃不透“，主要还是没理解它的概念的缘故。
一.
通过URL截取来调用OC方法：
这种方式中，JS进行跳转的URL可以看成是为OC在JS中注册了一个方法，相当于OC中对应方法的声明。
而OC中通过截取URL获得方]]></description><category></category></item><item><title><![CDATA[JS与OC交互(iPhone项目)中JavaScriptCore.framework的使用]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/50866439</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/50866439</guid><author>sfjsxhb</author><pubDate>Sat, 12 Mar 2016 17:15:16 +0800</pubDate><description><![CDATA[项目中用到JS与OC的交互问题，查资料看到的有关JavaScriptCore.framework的介绍，实在太强大了，推荐给大家http://blog.iderzheng.com/introduction-to-ios7-javascriptcore-framework/]]></description><category></category></item><item><title><![CDATA[利用JS 直接调用执行OC代码，非提取URL]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/50863916</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/50863916</guid><author>sfjsxhb</author><pubDate>Sat, 12 Mar 2016 09:35:02 +0800</pubDate><description><![CDATA[一：
首先导入JavaScriptCore.framework:
点击左侧工程]]></description><category></category></item><item><title><![CDATA[typedef/结构体/枚举/]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/50832015</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/50832015</guid><author>sfjsxhb</author><pubDate>Wed, 09 Mar 2016 00:58:57 +0800</pubDate><description><![CDATA[typedef ；——别名(类型的别名)
typedef目的一般有两个，
1.
一个是给变量一个易记且意义明确的名字；
2.
typedef int myInt;
另一个简化一些比较复杂的类型声名。


（1）机构体
typedef struct Student
{
int a;

}Stu;
于是在声明变量的时候就可以直接这样定义：Stu stu1;
如果没有ty]]></description><category></category></item><item><title><![CDATA[block的使用场景]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/50831710</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/50831710</guid><author>sfjsxhb</author><pubDate>Tue, 08 Mar 2016 23:23:47 +0800</pubDate><description><![CDATA[block的使用
一：
Xcode中敲
inline就会出现 block定义模板
提示代码；
block的格式:
returnType (^blockName) (parameterTypes) = ^(parameters){
//代码
}


block的类型：
returnType (^blockName) (parameterTypes)
二：
block的作用]]></description><category></category></item><item><title><![CDATA[对class、superclass、super你了解多少？]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/50823595</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/50823595</guid><author>sfjsxhb</author><pubDate>Tue, 08 Mar 2016 00:43:15 +0800</pubDate><description><![CDATA[class：获取方法调用者的类名；
superclass：获取方法调用者的父类类名；
super：编译修饰符，不是指针，跟const类似于关键字的作用，指向父类的标志；
    本质还是拿到当前对象去掉用父类的方法；
self：是一个指针，有地址；]]></description><category></category></item><item><title><![CDATA[const,static,extern简介]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/50793279</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/50793279</guid><author>sfjsxhb</author><pubDate>Fri, 04 Mar 2016 00:06:52 +0800</pubDate><description><![CDATA[const,static,extern简介
一、const与宏的区别（面试题）:

const简介:之前常用的字符串常量，一般是抽成宏，但是苹果不推荐我们抽成宏，推荐我们使用const常量。

编译时刻:宏是预编译（编译之前处理），const是编译阶段。编译检查:宏不做检查，不会报编译错误，只是替换，const会编译检查，会报编译错误。宏的好处:宏能定义一些函数，方法。 const不能。]]></description><category></category></item><item><title><![CDATA[c、OC、C++的三种预处理功能]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/50792527</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/50792527</guid><author>sfjsxhb</author><pubDate>Thu, 03 Mar 2016 23:15:25 +0800</pubDate><description><![CDATA[1.

凡是以“#”开头的均为预处理命令。“define”为宏定义命令。
宏定义：
#define 宏名 字符串
或带参数的宏定义
#define 宏名(宏参数)  (字符串)
其中，字符串可以是任意字符、表达式；


宏定义作用域：从宏定义开始到源程序结束；
也可以用#undef终止宏定义作用域；


2.
文件包含
就是：
#import “头文件名.h”
]]></description><category></category></item><item><title><![CDATA[MVC跟MVVM]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/50790448</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/50790448</guid><author>sfjsxhb</author><pubDate>Thu, 03 Mar 2016 17:54:20 +0800</pubDate><description><![CDATA[一篇不错的有关MVVM跟MVC的博文。]]></description><category></category></item><item><title><![CDATA[类的声名、类别、类扩展、代理协议]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/50786185</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/50786185</guid><author>sfjsxhb</author><pubDate>Thu, 03 Mar 2016 09:52:00 +0800</pubDate><description><![CDATA[首先应该明确的是类的声名、类别、类扩展及代理协议的表现形式：
1.
类的声名是最常见的，也就是对象头文件的：
@interface WebView : UIView

@end
2.
类别：有.h跟.m文件
在.h中的形式
@interface UILabel (AdjustWidth)

-(CGSize)AdjustWidth;
@end
3.
类扩展是一种特殊的类]]></description><category></category></item><item><title><![CDATA[头文件相互引用优化问题]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/50781297</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/50781297</guid><author>sfjsxhb</author><pubDate>Wed, 02 Mar 2016 16:55:09 +0800</pubDate><description><![CDATA[1.两个.m文件互相引用.h文件
2.@class的用法
3.继承时.h引用不可避免]]></description><category></category></item><item><title><![CDATA[iOS 成员变量跟属性的区别]]></title><link>https://blog.youkuaiyun.com/sfjsxhb/article/details/50779286</link><guid>https://blog.youkuaiyun.com/sfjsxhb/article/details/50779286</guid><author>sfjsxhb</author><pubDate>Wed, 02 Mar 2016 13:41:36 +0800</pubDate><description><![CDATA[一、类Class中的属性property

　　在ios第一版中，我们为输出口同时声明了属性和底层实例变量，那时，属性是oc语言的一个新的机制，并且要求你必须声明与之对应的实例变量，例如：

@interface MyViewController :UIViewController
{
    UIButton *myButton;
}
@property (nonatomic, reta]]></description><category></category></item></channel></rss>