<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jimZT的博客]]></title><description><![CDATA[走过路过,大家不要错过]]></description><link>https://blog.youkuaiyun.com/jimZT</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jimZT]]></copyright><item><title><![CDATA[《无敌大冒险》技术支持]]></title><link>https://blog.youkuaiyun.com/jimZT/article/details/122475796</link><guid>https://blog.youkuaiyun.com/jimZT/article/details/122475796</guid><author>jimZT</author><pubDate>Thu, 13 Jan 2022 15:54:51 +0800</pubDate><description><![CDATA[亲爱的用户

如果您在使用我们的产品时遇到任何问题，请随时与我们联系，我们将全力全意为您解决！

请发邮件与我们联系，我们将24小时为您服务！

邮箱地址： 3150381621@qq.com

谢谢

Dear user

If you encounter any problems when using our products, please feel free to contact us, we will try our best to solve for you!

Please email us,]]></description><category></category></item><item><title><![CDATA[Runtime浅析]]></title><link>https://blog.youkuaiyun.com/jimZT/article/details/109066836</link><guid>https://blog.youkuaiyun.com/jimZT/article/details/109066836</guid><author>jimZT</author><pubDate>Wed, 14 Oct 2020 10:50:45 +0800</pubDate><description><![CDATA[1).Runtime消息传递



 1.通过hash算法，先从缓存中查找，找到，调用方法结束流程；

 2.没有找到，则取当前类的方法列表中查找，找到，调用方法结束流程；

 3.没有在当前类的方法列表中找到，则取逐级父类方法列表中查找，找到，调用方法，加入当前方法缓存中，再结束流程；

 4.以上都没有找到，进入方法动态解析，转入消息转发流程。

2).消息转发流程：





 1.调用动态解析方法resolveClassMethod:(SEL)sel，如果动态添加方法（调用class_a...]]></description><category></category></item><item><title><![CDATA[给Button倒圆角造成UI卡顿的情况]]></title><link>https://blog.youkuaiyun.com/jimZT/article/details/89067352</link><guid>https://blog.youkuaiyun.com/jimZT/article/details/89067352</guid><author>jimZT</author><pubDate>Sun, 07 Apr 2019 11:51:05 +0800</pubDate><description><![CDATA[解决办法:

button.layer.shouldRasterize =YES;

button.layer.rasterizationScale =YES;
]]></description><category></category></item><item><title><![CDATA[浅析dispatch_barrier_async]]></title><link>https://blog.youkuaiyun.com/jimZT/article/details/88879087</link><guid>https://blog.youkuaiyun.com/jimZT/article/details/88879087</guid><author>jimZT</author><pubDate>Thu, 28 Mar 2019 21:51:56 +0800</pubDate><description><![CDATA[在并行队列中，为了保持某些任务完成的顺序，需要等待一些任务完成后才能继续进行，使用barrier来等待之前任务完成，避免数据竞争等问题。

使用函数dispatch_barrier_async函数会等待追加到Concurrent Dispatch Queue并行对列中的操作全部执行完之后，然后再执行dispatch_barrier_async函数追加的处理，等dispatch_barrier_as...]]></description><category></category></item><item><title><![CDATA[线程和进程的区别]]></title><link>https://blog.youkuaiyun.com/jimZT/article/details/88853416</link><guid>https://blog.youkuaiyun.com/jimZT/article/details/88853416</guid><author>jimZT</author><pubDate>Wed, 27 Mar 2019 19:43:04 +0800</pubDate><description><![CDATA[进程和线程都是由操作系统所提供的程序运行基本单元，系统利用该基本单元实现系统对应用的并发性。

一个线程至少有一个进程，一个进程至少有一个线程。

进程: 拥有独立的内存单元，二多个线程共享一块内存；

线程: 线程是指进程内的一个执行单元。

联系: 线程是进程的基本组成单位

区别:

1).调度：线程作为调度和分配的基本单位，进程作为拥有资源的基本单位

2).并发性：不仅进程之间可以并发...]]></description><category></category></item><item><title><![CDATA[KVC/KVO的理解]]></title><link>https://blog.youkuaiyun.com/jimZT/article/details/88803839</link><guid>https://blog.youkuaiyun.com/jimZT/article/details/88803839</guid><author>jimZT</author><pubDate>Mon, 25 Mar 2019 19:52:22 +0800</pubDate><description><![CDATA[KVC:键值编码是一种间接访问对象的属性使用字符串来标识属性，而不是通过调用存取方法，直接或通过实例变量访问的机制。

KVO：键值观察机制，他提供了观察某一属性变化的方法，极大的简化了代码。

example:

[self addObserver:self forKeyPath:@"highlighted" options:0 context:nil];



#pragma mark KV...]]></description><category></category></item><item><title><![CDATA[实现简单的动画]]></title><link>https://blog.youkuaiyun.com/jimZT/article/details/86323354</link><guid>https://blog.youkuaiyun.com/jimZT/article/details/86323354</guid><author>jimZT</author><pubDate>Fri, 11 Jan 2019 23:08:22 +0800</pubDate><description><![CDATA[在IOS开发中，想实现一些小动画是非常容易的，系统会根据某个属性的值改变自动形成动画，例如：x值本来是10,然后改为100，系统会通过平移的方式让x值慢慢从10变到100

两种实现方式：

1.头尾式:

[UIView beginAnimations:nil context:nil];

/**需要执行动画的代码**/

/**提交**/

[UIView commitAnimations];...]]></description><category></category></item><item><title><![CDATA[发邮件方法]]></title><link>https://blog.youkuaiyun.com/jimZT/article/details/86189280</link><guid>https://blog.youkuaiyun.com/jimZT/article/details/86189280</guid><author>jimZT</author><pubDate>Wed, 09 Jan 2019 23:55:32 +0800</pubDate><description><![CDATA[方法1：(系统自带客户端，发完邮件后不会自动回到原应用)

NSURL *url = [NSURL URLWithString:@&quot;mailto://10000@qq.com&quot;];

[[UIApplication sharedApplication] openURL: url];

方法2：MFMailComposeViewController

邮件发送后的代理方法回调，发完后会自动回到原应用...]]></description><category></category></item><item><title><![CDATA[iOS基础发短信]]></title><link>https://blog.youkuaiyun.com/jimZT/article/details/86188767</link><guid>https://blog.youkuaiyun.com/jimZT/article/details/86188767</guid><author>jimZT</author><pubDate>Wed, 09 Jan 2019 23:49:48 +0800</pubDate><description><![CDATA[方法1：(直接跳转界面，没有提示，不能自动回到原应用)

NSURL *url = [NSURL URLWithString:@&quot;sms://10000&quot;];

[[UIApplication sharedApplication] openURL:url];

方法2：(可以指定短信内容)

#import &amp;lt;MessageUI/MessageUI.h&amp;gt;

//显示发短信的控制器

M...]]></description><category></category></item><item><title><![CDATA[iOS基础整理-常用小功能]]></title><link>https://blog.youkuaiyun.com/jimZT/article/details/86188107</link><guid>https://blog.youkuaiyun.com/jimZT/article/details/86188107</guid><author>jimZT</author><pubDate>Wed, 09 Jan 2019 23:39:58 +0800</pubDate><description><![CDATA[出来上班这么久了，发现之前好多东西都忘记了，现在开始重新整理一下！

 小功能-实现拨打电话：

方法1：(最简单最粗暴的方法: 直接跳转到拨号界面)

NSURL *url = [NSURL URLWITHString:@&quot;tel://10000&quot;];

[[UIApplication sharedApplication] openURL: url];

缺点：不会自动返回到通话记录界面

方法...]]></description><category></category></item><item><title><![CDATA[Masonry 使用过程中遇到的一些坑]]></title><link>https://blog.youkuaiyun.com/jimZT/article/details/51801367</link><guid>https://blog.youkuaiyun.com/jimZT/article/details/51801367</guid><author>jimZT</author><pubDate>Fri, 01 Jul 2016 14:57:34 +0800</pubDate><description><![CDATA[前段时间尝试着使用Masonry来布局,感觉比较好用,其使用的过程中也没有出现什么问题,但是昨天在一个界面上添加自定义弹出框的时候，则出现了问题：
make.top.mas_equalTo(self.view.top).with.offset(-2
 *0.301 * SCREEN_HEIGHT);
        make.left.mas_equalTo(self.view.left).]]></description><category></category></item></channel></rss>