<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[PRliu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/PRliu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; PRliu]]></copyright><item><title><![CDATA[electron调用c++ dll lib]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/140987643</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/140987643</guid><author>PRliu</author><pubDate>Wed, 07 Aug 2024 11:40:43 +0800</pubDate><description><![CDATA[electron dll 动态库  lib 静态块 c++]]></description><category></category></item><item><title><![CDATA[Flutter WillPopScope在iOS系统上无法手势返回]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/136379138</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/136379138</guid><author>PRliu</author><pubDate>Thu, 29 Feb 2024 19:34:04 +0800</pubDate><description><![CDATA[Flutter WillPopScope在iOS系统上无法手势返回]]></description><category></category></item><item><title><![CDATA[iwatch 苹果手表无法使用一号多设备 无法使用移动网络]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/122583539</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/122583539</guid><author>PRliu</author><pubDate>Wed, 19 Jan 2022 16:16:38 +0800</pubDate><description><![CDATA[iwatch 苹果手表无法使用一号多设备 无法使用移动网络]]></description><category></category></item><item><title><![CDATA[__strong typeof(weakSelf)strongSelf = weakSelf意义何在]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/118380071</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/118380071</guid><author>PRliu</author><pubDate>Thu, 01 Jul 2021 10:20:48 +0800</pubDate><description><![CDATA[一般iOS程序员都在写block时，如果block与self构成了闭环，通常都会使用套装使用

在block外：__weak typeof(Class*) weakSelf= self;

在block里：__strong typeof(Class*)strongSelf =weakSelf;

大家都是搬砖的，有说的不对的地方指正就好，我说说我的理解：

很多人都觉得__strong typeof(Class*)strongSelf =weakSelf;的写法都是邯郸学步，但是不知所...]]></description><category></category></item><item><title><![CDATA[iwatch支付宝提示未连接]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/116522574</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/116522574</guid><author>PRliu</author><pubDate>Sat, 08 May 2021 12:04:49 +0800</pubDate><description><![CDATA[iwatch支付宝提示未连接
重启iwatch与iPhone即可，不要绕弯路了。

]]></description><category></category></item><item><title><![CDATA[算法复杂度]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/114639507</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/114639507</guid><author>PRliu</author><pubDate>Wed, 10 Mar 2021 16:44:19 +0800</pubDate><description><![CDATA[这是我看到对于算法复杂的解析的最通俗易懂的文章，给大家分享一下：知乎奎哥出品。

主要还是从算法所占用的「时间」和「空间」两个维度去考量。

一时间维度：是指执行当前算法所消耗的时间，我们通常用「时间复杂度」来描述。

「大O符号表示法」，即 T(n) = O(f(n))



我们先来看个例子：

for(i=1; i&lt;=n; ++i)
{
j = i;
j++;
}

通过「 大O符号表示法 」，这段代码的时间复杂度为：O(n) ，为什么呢?

在 大O符号表示法中，时间复杂度的...]]></description><category></category></item><item><title><![CDATA[为何要执行 [super init]]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/106136746</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/106136746</guid><author>PRliu</author><pubDate>Fri, 15 May 2020 10:44:33 +0800</pubDate><description><![CDATA[static instancetype _I_Test_init(Test * self, SEL _cmd) {
  self = ((Test *(*)(__rw_objc_super *, SEL))(void *)objc_msgSendSuper)((__rw_objc_super){
 (id)self, (id)class_getSuperclass(objc_getClass("Test"))
 },
 sel_registerName("init"));
  i...]]></description><category></category></item><item><title><![CDATA[MAC 网速问题 变慢 的来看看 经验]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/53945462</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/53945462</guid><author>PRliu</author><pubDate>Fri, 30 Dec 2016 17:55:51 +0800</pubDate><description><![CDATA[在“系统偏好设置”－“网络”－打开“位置”－“编辑位置”－点“➕”－随便编一个名字－确定，改自动为你刚才添加的那个网络，如我的增加了一个“123”名称的网络。




上述为苹果客服，指导的操作方法，非常有用，调试完后，safari上网速度很快很快。希望对你有所帮助。]]></description><category></category></item><item><title><![CDATA[隐藏奇怪的Xcode 8日志]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/53883845</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/53883845</guid><author>PRliu</author><pubDate>Mon, 26 Dec 2016 10:03:46 +0800</pubDate><description><![CDATA[Copy matching assets reply: XPC_TYPE_DICTIONARY   { count = 2, transaction: 0, voucher = 0x0, contents =
"Assets" => : { length = 1237 bytes, contents = 0x62706c6973743030d401020304050663645824766572]]></description><category></category></item><item><title><![CDATA[使用生成的Framework 运行报错(Reason: Image Not Found)]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/53538459</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/53538459</guid><author>PRliu</author><pubDate>Fri, 09 Dec 2016 14:26:57 +0800</pubDate><description><![CDATA[Image Not Found]]></description><category></category></item><item><title><![CDATA[Swift3.0]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/53170493</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/53170493</guid><author>PRliu</author><pubDate>Tue, 15 Nov 2016 13:49:28 +0800</pubDate><description><![CDATA[相关知识点:

修改项目名称两种方式


1.Bundle name 
2.Bundle display name 





try 三种处理异常的方式

//  在swift中提供三种处理异常的方式
//  方式一:try方式 程序员手动捕捉异常
        do {
                try NSJSONSerialization.JSONObj]]></description><category></category></item><item><title><![CDATA[android 图片压缩方法]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/51512816</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/51512816</guid><author>PRliu</author><pubDate>Fri, 27 May 2016 09:49:40 +0800</pubDate><description><![CDATA[第一：质量压缩法：



复制代码代码如下:


private Bitmap compressImage(Bitmap image) {



        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        image.compress(Bitmap.CompressFormat.JPEG]]></description><category></category></item><item><title><![CDATA[Block全面分析]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/51399817</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/51399817</guid><author>PRliu</author><pubDate>Sat, 14 May 2016 00:03:32 +0800</pubDate><description><![CDATA[1、第一部分

定义和使用Block，

- (void)viewDidLoad
{
    [super viewDidLoad];
    //（1）定义无参无返回值的Block
    void (^printBlock)() = ^(){
        printf("no number");
    };
    printBlock();
    

    printBlo]]></description><category></category></item><item><title><![CDATA[真机调试错误总结－－－does not match your bundle identifier]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/51375026</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/51375026</guid><author>PRliu</author><pubDate>Wed, 11 May 2016 15:44:05 +0800</pubDate><description><![CDATA[问题：
The provisioning profile specified in your build settings (“xxxxx”) has an AppID of “com.jinketai” which does not match your bundle identifier “Jxxxxx”


解决：
第一种可能:APPID 的格式跟本地工程的不匹配]]></description><category></category></item><item><title><![CDATA[iOS面试题汇总一]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/51279614</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/51279614</guid><author>PRliu</author><pubDate>Fri, 29 Apr 2016 10:04:44 +0800</pubDate><description><![CDATA[ios 属性中常用修饰词的总结



开发常用的工具有哪些？


通过回答这个问题，一方面可以看出这个应聘者在iOS开发领域的深入程度。如果只知道Xcode，Cocoapods，说明是初级或者根本不愿意在业余时间花费精力去扩展。

参考答案：

常用的iOS开发工具有：

Xcode开发工具及配套的Instruments工具Xcode常用的插件Cocoapods第三方库管]]></description><category></category></item><item><title><![CDATA[iOS属性中常用修饰词的总结]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/51279576</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/51279576</guid><author>PRliu</author><pubDate>Fri, 29 Apr 2016 10:00:10 +0800</pubDate><description><![CDATA[忘记是最好的记得 著作
一、assign (ARC/MRC)


1、assign在ARC和MRC中都是存在的 
2、assign一般用来修饰基本数据类型 
3、assign也可用来修饰对象，但是，对象的引用计数不会+1（与strong的区别） 
4、assign如果用来修饰对象属性，当对象销毁后指针不会指向nil，会出现野指针错误(与weak的区别) 
5、在MRC用assign]]></description><category></category></item><item><title><![CDATA[iOS中几种数据持久化方案]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/51276036</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/51276036</guid><author>PRliu</author><pubDate>Thu, 28 Apr 2016 17:10:38 +0800</pubDate><description><![CDATA[概论

所谓的持久化，就是将数据保存到硬盘中，使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中，有很多数据持久化的方案，接下来我将尝试着介绍一下5种方案： 



plist文件（属性列表）


preference（偏好设置）


NSKeyedArchiver（归档）


SQLite 3


CoreData


沙盒

在介]]></description><category></category></item><item><title><![CDATA[多线程篇-RunLoop]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/51276008</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/51276008</guid><author>PRliu</author><pubDate>Thu, 28 Apr 2016 17:08:15 +0800</pubDate><description><![CDATA[简述
1、RunLoop是事件接收和分发机制的一个实现
2、并且它能处理App中的各种事件（比如触摸事件、定时器事件、Selector事件）
3、以及节省CPU资源，提高程序性能：(该做事时做事，该休息时休息)

如何获取Runloop对象：
这里的话IOS提供了两套API来访问或使用RunLoop
    1、CFRunLoopRef      是在 CoreFoundation 框架内]]></description><category></category></item><item><title><![CDATA[iOS多线程(NSThread、NSOperation、GCD)]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/51275947</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/51275947</guid><author>PRliu</author><pubDate>Thu, 28 Apr 2016 17:04:09 +0800</pubDate><description><![CDATA[文章大纲

一、基本概念

计算机操作系统都有的基本概念，以下概念简单方式来描述。



进程： 一个具有一定独立功能的程序关于某个数据集合的一次运行活动。可以理解成一个运行中的应用程序。


线程： 程序执行流的最小单元，线程是进程中的一个实体。


同步： 只能在当前线程按先后顺序依次执行，不开启新线程。


异步： 可以在当前线程开启多个新线程执行，可不按顺]]></description><category></category></item><item><title><![CDATA[IOS动画总结-Core Animation]]></title><link>https://blog.youkuaiyun.com/PRliu/article/details/51272122</link><guid>https://blog.youkuaiyun.com/PRliu/article/details/51272122</guid><author>PRliu</author><pubDate>Thu, 28 Apr 2016 10:10:07 +0800</pubDate><description><![CDATA[一、简介 

IOS 动画主要是指Core Animation框架。官方使用文档地址为：Core
 Animation Guide。
Core Animation是IOS和OS X平台上负责图形渲染与动画的基础框架。Core Animation可以作用与动画视图或者其他可视元素，为你完成了动画所需的大部分绘帧工作。你只需要配置少量的动画参数（如开始点的位置和结束点的位置）即可使用Core]]></description><category></category></item></channel></rss>