<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[EJ_Paradise的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/EJ_Paradise</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; EJ_Paradise]]></copyright><item><title><![CDATA[动态计算控件frame]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/100705023</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/100705023</guid><author>EJ_Paradise</author><pubDate>Tue, 10 Sep 2019 17:08:32 +0800</pubDate><description><![CDATA[动态计算控件frame
在页面加载完毕时计算
onLoad: function (options) {
    // 动态计算距离顶部高度
    var that = this;
    var query = wx.createSelectorQuery()
    query.select('#affix').boundingClientRect()
    query.exec(funct...]]></description><category></category></item><item><title><![CDATA[沙盒缓存]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50446532</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50446532</guid><author>EJ_Paradise</author><pubDate>Sat, 02 Jan 2016 01:40:06 +0800</pubDate><description><![CDATA[IOS 沙盒与清除缓存，ios沙盒缓存SandBox，沙盒机制，是一种安全体系。我们所开发的每一个应用程序在设备上会有一个对应的沙盒文件夹，当前的程序只能在自己的沙盒文件夹中读取文件，不能访问其他应用程序的沙盒。在项目中添加的所有非代码的资源，比如图片、声音、属性列表等都存在自己的沙盒中。此外，在程序运行中动态生成的或者从网络获取的数据，如果要存储，也都是存储到沙盒中。沙盒中的默认文件夹（1）Doc]]></description><category></category></item><item><title><![CDATA[数据解析]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50446012</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50446012</guid><author>EJ_Paradise</author><pubDate>Fri, 01 Jan 2016 21:57:08 +0800</pubDate><description><![CDATA[在网络开发中, 从服务器获取的数据都为二进制形式的, 最常见的有JSON/XML, 我们需要对这些数据进行解析.序列化&反序列化
反序列化：在从服务器接收到数据之后，将二进制数据转换成 NSArray / NSDictionary
序列化：在向服务器发送数据之前，将 NSArray / NSDictionary 转换成二进制的过程
JSON解析JSON语法规则
数据以 key/value 值对表示]]></description><category></category></item><item><title><![CDATA[网络基本知识]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50445439</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50445439</guid><author>EJ_Paradise</author><pubDate>Fri, 01 Jan 2016 17:36:07 +0800</pubDate><description><![CDATA[学习网络, 首先要了解几个基本概念:
客户端（Client）：移动应用（iOS、android等应用）
服务器（Server）：为客户端提供服务、提供数据、提供资源的机器
请求（Request）：客户端向服务器索取数据的一种行为
响应（Response）：服务器对客户端的请求做出的反应，一般指返回数据给客户端
URL
  URL统一资源定位符, 通过 1 个 URL，能找到互联网上唯一的 1 个资源]]></description><category></category></item><item><title><![CDATA[NSNull&nil&Nil&NULL]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50435351</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50435351</guid><author>EJ_Paradise</author><pubDate>Wed, 30 Dec 2015 16:12:05 +0800</pubDate><description><![CDATA[nil  OC的, 空对象, 是地址指向空的对象; 在OC中, 可以给空对象发送任何消息, 不会出现错误;
NULL  C语言中的空地址, 相当于地址为0 
Nil 表示一个空类  与nil空对象对应
NSNull用于向字典或数组中插入空值;   如果我们插入nil,  程序运行时会崩溃; 
  如果插入[NSNull null], 这样运行时便不会崩溃
  
  应用: 从网络上获取的数据我们无法]]></description><category></category></item><item><title><![CDATA[NSURLConnection]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50435065</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50435065</guid><author>EJ_Paradise</author><pubDate>Wed, 30 Dec 2015 15:43:29 +0800</pubDate><description><![CDATA[步骤
NSURL：确定要访问的资源
NSURLRequest：根据 URL 建立请求，向服务器索要数据
NSURLConnection：建立网络连接，将请求(异步)发送给服务器
// 发送请求
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(]]></description><category></category></item><item><title><![CDATA[第三方登录]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50426608</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50426608</guid><author>EJ_Paradise</author><pubDate>Tue, 29 Dec 2015 14:44:57 +0800</pubDate><description><![CDATA[主流第三方登录主要有两种方式:
  1> OAuth2.0: 当前程序–>弹出网页–> 手动输入账号密码–>完成授权,手动获取 AccessToken–>可以获取用户数据 
  2>  SSO 授权: 第三方应用程序–>点击授权–>可以获取用户数据 (模拟器不好使)
这里主要讲SSO授权, 首先我们看一下SSO授权的优势: 
1. 快捷方便(不用频繁输入账号密码, 还有可能用户输入错误) 
 2.]]></description><category></category></item><item><title><![CDATA[社交分享]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50426250</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50426250</guid><author>EJ_Paradise</author><pubDate>Tue, 29 Dec 2015 14:06:10 +0800</pubDate><description><![CDATA[如何实现社交分享?
自己编写各个平台的分享代码（代码量较多）
利用iOS自带的Social.framework
利用第三方的分享框架
Social.framework// 判断服务是否可用
[SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]// 弹出分享内容输入界面
SLComposeViewContr]]></description><category></category></item><item><title><![CDATA[视频]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50425851</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50425851</guid><author>EJ_Paradise</author><pubDate>Tue, 29 Dec 2015 13:08:45 +0800</pubDate><description><![CDATA[框架: MediaPlayer(已经过期)
创建
 NSString *path = [[NSBundle mainBundle]pathForResource:@"Alizee_La_Isla_Bonita.mp4" ofType:nil];
    NSURL *url = [NSURL fileURLWithPath:path];    MPMoviePlayerController *pla]]></description><category></category></item><item><title><![CDATA[音乐播放器]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50425476</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50425476</guid><author>EJ_Paradise</author><pubDate>Tue, 29 Dec 2015 11:58:03 +0800</pubDate><description><![CDATA[新建一个音乐播放工具类EJMusicTool
单例对象
 + (instancetype)shareMusicTool
{
    static CZMusicTool *_INTENCE;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _INTENCE = [[EJMusicTool a]]></description><category></category></item><item><title><![CDATA[音频]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50423640</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50423640</guid><author>EJ_Paradise</author><pubDate>Tue, 29 Dec 2015 02:28:07 +0800</pubDate><description><![CDATA[音效播放框架: AVFoundation
创建
AudioServicesCreateSystemSoundID(CFURLRef  inFileURL, SystemSoundID *outSystemSoundID)播放
 AudioServicesPlaySystem(Alert)Sound(SystemSoundID  inSystemSoundID)
音乐播放框架: AVFoundatio]]></description><category></category></item><item><title><![CDATA[正则表达式和谓词]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50421391</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50421391</guid><author>EJ_Paradise</author><pubDate>Mon, 28 Dec 2015 20:49:50 +0800</pubDate><description><![CDATA[正则表达式
需要匹配的字符串 str 
匹配规则 pattern
正则表达式
NSRegularExpression *regularExpression = [NSRegularExpression  regularExpressionWithPattern:pattern options:0 error:nil];
匹配结果
NSArray *resultarray= [regularExpre]]></description><category></category></item><item><title><![CDATA[大头针]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50419839</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50419839</guid><author>EJ_Paradise</author><pubDate>Mon, 28 Dec 2015 16:31:19 +0800</pubDate><description><![CDATA[系统大头针大头针基本操作// 添加一个大头针
- (void)addAnnotation:(id <MKAnnotation>)annotation;// 添加多个大头针
- (void)addAnnotations:(NSArray *)annotations;// 移除一个大头针
- (void)removeAnnotation:(id <MKAnnotation>)annotation;//]]></description><category></category></item><item><title><![CDATA[苹果原生地图(下)]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50419427</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50419427</guid><author>EJ_Paradise</author><pubDate>Mon, 28 Dec 2015 15:43:02 +0800</pubDate><description><![CDATA[日常生活中我们经常会用到地图和导航, 这两个功能必须基于2个框架进行开发:
MapKit ：用于地图展示
CoreLocation ：用于地理定位
MapKit几个重要属性
  1.可以通过设置MKMapView的mapViewType设置地图类型
MKMapTypeStandard ：普通地图（左图）
MKMapTypeSatellite ：卫星云图 （中图）
MKMapTypeHybrid ：普]]></description><category></category></item><item><title><![CDATA[百度地图]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50412900</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50412900</guid><author>EJ_Paradise</author><pubDate>Sun, 27 Dec 2015 16:36:17 +0800</pubDate><description><![CDATA[在百度地图开放平台注册一个应用生成一个APPKey
通过APPKey获取授权(在程序入口获取)
 -]]></description><category></category></item><item><title><![CDATA[苹果原生地图(上)]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50412625</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50412625</guid><author>EJ_Paradise</author><pubDate>Sun, 27 Dec 2015 15:45:05 +0800</pubDate><description><![CDATA[日常生活中我们经常会用到地图和导航, 这两个功能必须基于2个框架进行开发:
Map Kit ：用于地图展示
Core Location ：用于地理定位
CLLocationManagerCLLocationManager的常用操作开始用户定位- (void)startUpdatingLocation;停止用户定位- (void) stopUpdatingLocation;当调用了startUpdat]]></description><category></category></item><item><title><![CDATA[支付宝集成]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50412389</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50412389</guid><author>EJ_Paradise</author><pubDate>Sun, 27 Dec 2015 14:49:44 +0800</pubDate><description><![CDATA[使用支付宝进行一个完整的支付功能，大致有以下步骤：
向支付宝申请, 与支付宝签约，获得商户ID（partner）和账号ID（seller）
下载相应的公钥私钥文件（加密签名用）
// 由此获取三个参数
NSString *partner = @"";
NSString *seller = @"";
NSString *privateKey = @"";
下载支付宝SDK
生成订单信息  商品描述/价]]></description><category></category></item><item><title><![CDATA[SDWebImage]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50411880</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50411880</guid><author>EJ_Paradise</author><pubDate>Sun, 27 Dec 2015 12:04:21 +0800</pubDate><description><![CDATA[SDWebImage 是非常著名的网络图片处理框架，目前国内超过 90％ 公司都在使用！下面我们了解下其实现原理:框架结构设计SDWebImage框架通过传入一个URL字符串完成下载图片的整个过程;整体思路: ViewController将URLString传给UIImageView, UIImageView将URL传给下载管理器, 下载管理器将下载任务交给downloadImageOperatio]]></description><category></category></item><item><title><![CDATA[自定义NSOperation]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50411225</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50411225</guid><author>EJ_Paradise</author><pubDate>Sun, 27 Dec 2015 02:59:08 +0800</pubDate><description><![CDATA[通过上篇文章的学习我们知道, NSOperation系统自带的方法无论是取消还是挂起操作只能控制队列中的操作, 都无法操纵正在线程中运行的操作; 下面我们通过自定义NSOperation准备工作
自定义 DownloadImageOperation 继承自 NSOperation
代码调用
// 实例化自定义操作
DownloadImageOperation *op = [[DownloadImag]]></description><category></category></item><item><title><![CDATA[layoutSubviews]]></title><link>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50408307</link><guid>https://blog.youkuaiyun.com/EJ_Paradise/article/details/50408307</guid><author>EJ_Paradise</author><pubDate>Sat, 26 Dec 2015 13:55:07 +0800</pubDate><description><![CDATA[UIScrollView
一般在 UIScrollView 中，只要一滚动，就会被调用，调用频率非常高 
 在 Cell 中，只要设置数据源，添加子控件，调整大小，点击…都会触发 layoutSubviews注意：此方法中，千万不要写非常复杂的代码
UITabBar 
如果重写layoutSubviews方法时不调用super会出现tabBar透明]]></description><category></category></item></channel></rss>