<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[iOSpipi的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/iOSpipi</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; iOSpipi]]></copyright><item><title><![CDATA[iOS 涨薪： Run Loop 面试题]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119897216</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119897216</guid><author>iOSpipi</author><pubDate>Tue, 24 Aug 2021 19:56:07 +0800</pubDate><description><![CDATA[Run Loop
运行循环
app 程序只有不停地运行, 才能不断响应用户的操作
Run Loop 两大功能:

睡眠中，等待消息
处理消息

从睡眠中 -&gt; 处理消息, 需要一个唤醒的过程
1、 讲讲 RunLoop, 项目中有用到吗？
RunLoop 的基本作用：
保持程序的持续运行
节省 CPU 的资源，提高程序的性能 （ 没有事情，就请休眠，不要功耗。有事情，就处理）
2、 RunLoop 内部实现逻辑？


Core Foundation 中关于 RunLoop 的 5 个类：
CFRunL]]></description><category></category></item><item><title><![CDATA[大厂面试iOS最新整理（flutter篇）]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119740456</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119740456</guid><author>iOSpipi</author><pubDate>Mon, 16 Aug 2021 20:30:03 +0800</pubDate><description><![CDATA[Flutter 的面试其实和 Android 面试的套路差不多，也是分两个部分：
1.Dart
2.Flutter
毕竟 Flutter 要使用 Dart 来写，那也就必须了解 Dart 的一些相关知识点。
Dart 相关面试题
1. Dart 当中的 「…」表示什么意思？
Dart 当中的 「…」意思是 「级联操作符」，为了方便配置而使用。
「…」和「.」不同的是 调用「…」后返回的相当于是 this，而「.」返回的则是该方法返回的值 。
2. Dart 的作用域
Dart 没有 「public」「pri]]></description><category></category></item><item><title><![CDATA[iOS面试题：APP该如何优化]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119609157</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119609157</guid><author>iOSpipi</author><pubDate>Wed, 11 Aug 2021 16:02:16 +0800</pubDate><description><![CDATA[一、首页启动速度

启动过程中做的事情越少越好（尽可能将多个接口合并）
不在UI线程上作耗时的操作（数据的处理在子线程进行，处理完通知主线程刷新）
在合适的时机开始后台任务（例如在用户指引节目就可以开始准备加载的数据）
尽量减小包的大小
优化方法：

量化启动时间
启动速度模块化
辅助工具（友盟，听云，Flurry）



二、页面浏览速度

json的处理（iOS 自带的NSJSONSerialization，Jsonkit，SBJson）
数据的分页（后端数据多的话，就要分页返回，例如网易新闻，或者 微]]></description><category></category></item><item><title><![CDATA[iOS面试题---分析下SDWebImage]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119541166</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119541166</guid><author>iOSpipi</author><pubDate>Mon, 09 Aug 2021 16:40:17 +0800</pubDate><description><![CDATA[1.SDWebImage 加载图片的流程
1.入口 setImageWithURL:placeholderImage:options: 会先把 placeholderImage 显示，然后 SDWebImageManager 根据 URL 开始处理图片。
2.进入 SDWebImageManager-downloadWithURL:delegate:options:userInfo:，交给 SDImageCache 从缓存查找图片是否已经下载 queryDiskCacheForKey:delegate:us]]></description><category></category></item><item><title><![CDATA[iOS Runtime面试题]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119488127</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119488127</guid><author>iOSpipi</author><pubDate>Sat, 07 Aug 2021 16:54:30 +0800</pubDate><description><![CDATA[前言：

上一篇文章我们讲了主线程如何进行阻塞，在此，我分享给大家，希望我的这篇文章能给你有所帮助，更多的面试题在这：docs.qq.com/doc/DTWxwWE…

一._[self class] 与 [super class]
下面的代码输出什么？
@implementation Son : Father
   - (id)init
   {
       self = [super init];
       if (self) {
           NSLog(@"%@", NSStringF]]></description><category></category></item><item><title><![CDATA[iOS面试：主线程如何进行阻塞?]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119421621</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119421621</guid><author>iOSpipi</author><pubDate>Thu, 05 Aug 2021 16:50:44 +0800</pubDate><description><![CDATA[前言:
今天在群里, 有个小伙伴问了一个问题, 他们和js交互的时候, 需要等待js的一个回调.
主线程调用一个网络请求, 然后要等网络请求的结果回来之后, 然后在return.
他说, 他们之前是根据runloop去回调添加监听解决的.说又引发了一些其他的问题, 问有没有人知道怎么做.
解决
我一直以为这应该是大部分都知道的, 直到他用runloop解决, 很多人都在群里讨论说没法实现, 我才意识到或许并不是那么简单.
方法一
如果你实在是不知道怎么解决, 那么就把return去掉换成block回调, 然]]></description><category></category></item><item><title><![CDATA[iOS面试题合集--BAT及各大中小型公司]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119394045</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119394045</guid><author>iOSpipi</author><pubDate>Wed, 04 Aug 2021 22:41:31 +0800</pubDate><description><![CDATA[简介
本文主要内容为iOS面试题目,对各个面试题进行一些分类(持续更新),包含了BAT,及各大中小型公司的面试题集合。
正文
中小型公司


谈下iOS开发中知道的哪些锁? 哪个性能最差?SD和AFN使用的哪个? 一般开发中你最常用哪个? 哪个锁apple存在问题又是什么问题?


iOS下如何实现指定线程数目的线程池?


如何用HTTP实现长连接？


http的post和get啥区别


使用atomic一定是线程安全的吗？


数据库建表的时候索引有什么用？


介绍下iOS设备获取唯一设备号的历史]]></description><category></category></item><item><title><![CDATA[iOS13 暗黑模式(Dark Mode)适配之OC版]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119352234</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119352234</guid><author>iOSpipi</author><pubDate>Tue, 03 Aug 2021 16:22:18 +0800</pubDate><description><![CDATA[这里写的可能不够满足你们但是没事，我这强烈推荐个好东西！！！对于要换公司，面试iOS的小伙伴，挺不错的:docs.qq.com/doc/DTWxwWE…
目录


一、适配Dark Mode


颜色适配


图片适配




二、获取当前模式(Light or Dark)


三、其他内容


四、总结


首先看看我们的效果图:

一、适配Dark Mode
开发者主要从颜色和图片两个方面进行适配，我们不需要关心切换模式时该如何操作，这些都由系统帮我们实现
1 颜色适配

iOS13 之前 UIColo]]></description><category></category></item><item><title><![CDATA[iOS网络缓存扫盲篇--使用两行代码就能完成80%的缓存需求]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119303505</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119303505</guid><author>iOSpipi</author><pubDate>Sun, 01 Aug 2021 21:26:01 +0800</pubDate><description><![CDATA[iOS网络缓存扫盲篇
–使用两行代码就能完成80%的缓存需求
由于微信、QQ、微博、这类的应用使用缓存很“重”，使一般的用户也对缓存也非常习惯。缓存已然成为必备。

缓存的目的的以空间换时间

这句话在动辄就是 300M、600M 的大应用上，得到了很好的诠释。但能有缓存意识的公司，还在少数。

只有你真正感受到痛的时候，你才会考虑使用缓存。

这个痛可能是：
服务器压力、客户端网络优化、用户体验等等。
当我们在谈论缓存的时候，我们在谈论什么？
我们今天将站在小白用户的角度，给缓存这个概念进行重新的定义。
]]></description><category></category></item><item><title><![CDATA[最新iOS面试题之Block+答案]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119277353</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119277353</guid><author>iOSpipi</author><pubDate>Sat, 31 Jul 2021 16:41:54 +0800</pubDate><description><![CDATA[Block
这一篇我们来研究一下objc的block并回答一下面试中的下列问题:

block的内部实现，结构体是什么样的
block是类吗，有哪些类型
一个int变量被 __block 修饰与否的区别？block的变量截获
block在修改NSMutableArray，需不需要添加__block
怎么进行内存管理的
block可以用strong修饰吗
解决循环引用时为什么要用__strong、__weak修饰
block发生copy时机
Block访问对象类型的auto变量时，在ARC和MRC下有什么区别]]></description><category></category></item><item><title><![CDATA[最新iOS开发面试题---字节跳动]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119218818</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119218818</guid><author>iOSpipi</author><pubDate>Thu, 29 Jul 2021 19:35:28 +0800</pubDate><description><![CDATA[更多面试题分享：
想进大厂，面试题必不可少！(iOS面试合集！)
字节一面内容：
1、 自我介绍
2、 介绍一下简历中的一个项目
3、 面向对象的三个要素
4、 多态？
5、 Java，python，OC运行效率孰高？
6、 Property，其中copy如何？
7、 Property(nonatomatic, copy) NSMutableArray有什么问题
8、 Copy和MutableCopy的区别
9、 解释下类别，原理
10、解释下封装，重载；
11、 OC存在多重继承吗？
12、了解表视图吗，]]></description><category></category></item><item><title><![CDATA[iOS：想进大厂，面试题必不可少！(合集)]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119177687</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119177687</guid><author>iOSpipi</author><pubDate>Wed, 28 Jul 2021 14:58:12 +0800</pubDate><description><![CDATA[这个栏目将持续更新–请iOS的小伙伴关注!
（答案不唯一，仅供参考，文章最后有福利）

iOS基础面试题合集（一）
iOS基础面试题合集（二）
iOS基础面试题合集（三）
iOS基础面试题合集（四）

其他：


iOS进阶面试题----多线程


iOS进阶面试题----Block部分


iOS高级开发面试题合集


iOS 高级面试题


常见的iOS开发面试题(题集）


2021年，iOS最新面试题！


腾讯iOS面试题总结—最新


阿里、字节iOS面试题之Runtime相关问题（附答案）
.]]></description><category></category></item><item><title><![CDATA[iOS开发App组件化之路]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119116913</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119116913</guid><author>iOSpipi</author><pubDate>Mon, 26 Jul 2021 20:47:59 +0800</pubDate><description><![CDATA[面试题分享：
iOS面试合集+答案（一）
iOS面试合集+答案（二）
iOS面试合集+答案（三）
iOS面试合集+答案（四）
iOS面试合集+答案（五）
iOS进阶面试题----Block部分
iOS进阶面试题----多线程
iOS基础面试题合集（一）
iOS基础面试题合集（二）
原创：GuoJin 百度APP技术团队-资深技术专家

组件化是一个老生常谈的涉及面很广的话题，即不是做好一件事而是做好一系列的事情才能达成；其中包含组件化框架在内的各架构层级、构建系统、依赖管理系统、以及配套的防劣化机制与规则规]]></description><category></category></item><item><title><![CDATA[method swizzling应该注意的点]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119057476</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119057476</guid><author>iOSpipi</author><pubDate>Sat, 24 Jul 2021 14:54:12 +0800</pubDate><description><![CDATA[原文地址
method swizzling
方法交换是OC运行时特征之一，通过方法交换可以hook方法，在实现一些需求时可以达到事半功倍的效果，但使用不慎同样可能导致难以想象的后果。在使用method swizzling前都应该理解以下注意点。
1.避免交换父类方法
如果当前类未实现被交换的方法而父类实现了的情况下，此时父类的实现会被交换，若此父类的多个继承者都在交换时会导致方法被交换多次而混乱，同时当调用父类的方法时会因为找不到而发生崩溃。
所以在交换前都应该先尝试为当前类添加被交换的函数的新的实现IMP]]></description><category></category></item><item><title><![CDATA[iOS高级开发面试题合集（一）]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/119042819</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/119042819</guid><author>iOSpipi</author><pubDate>Fri, 23 Jul 2021 19:26:43 +0800</pubDate><description><![CDATA[这个栏目将持续更新–请iOS的小伙伴关注!
传送门：iOS高级开发面试题合集（一）

更多：
iOS面试合集+答案（1-5）
常见的iOS开发面试题(题集）


]]></description><category></category></item><item><title><![CDATA[iOS面试合集+答案]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/118974485</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/118974485</guid><author>iOSpipi</author><pubDate>Wed, 21 Jul 2021 19:54:45 +0800</pubDate><description><![CDATA[iOS面试合集+答案（一）
iOS面试合集+答案（二）
iOS面试合集+答案（三）
iOS面试合集+答案（四）
iOS面试合集+答案（五）
喜欢的小伙伴可以点个赞，关注一下哦！持续更新

]]></description><category></category></item><item><title><![CDATA[AppStore 新功能解读：自定义产品页面和 A/B Test 工具（iOS）]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/118914554</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/118914554</guid><author>iOSpipi</author><pubDate>Tue, 20 Jul 2021 13:26:39 +0800</pubDate><description><![CDATA[一、前言
可能很多开发者还没有意识到，今年 WWDC21 推出 《Get ready to optimize your App Store product page》 是一个重磅功能！因为 iOS app 下载的地方，目前只有一个：App Store。所以，它是所有 app 能够提高暴光和决定用户是否下载最直接和最后的风口。如何包装好这个风口，最直接是影响下载量！而下载量意味着用户量。所以这个 Session 的重要性不言而喻，但是这个 Session 视频仅仅只有 8 分钟时间！为什么呢？咱们先留个伏笔.]]></description><category></category></item><item><title><![CDATA[iOS面试合集+答案（二）]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/118912500</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/118912500</guid><author>iOSpipi</author><pubDate>Mon, 19 Jul 2021 20:35:04 +0800</pubDate><description><![CDATA[这个栏目将持续更新–请iOS的小伙伴关注!
（答案不唯一，仅供参考，文章最后有福利）
二十一：XIB与Storyboards的优缺点
优点：

XIB：在编译前就提供了可视化界面，可以直接拖控件，也可以直接给控件添加约束，更直观一些，而且类文件中就少了创建控件的代码，确实简化不少，通常每个XIB对应一个类。
Storyboard：在编译前提供了可视化界面，可拖控件，可加约束，在开发时比较直观，而且一个storyboard可以有很多的界面，每个界面对应一个类文件，通过storybard，可以直观地看出整个A.]]></description><category></category></item><item><title><![CDATA[iOS面试合集+答案（一）]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/118877880</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/118877880</guid><author>iOSpipi</author><pubDate>Sun, 18 Jul 2021 15:56:52 +0800</pubDate><description><![CDATA[一.HTTP post的body体使用form-urlencoded和multipart/form-data的区别。
1）application/x-www-form-urlencoded：
窗体数据被编码为名称/值对，这是标准且默认的编码格式。当action为get时候，客户端把form数据转换成一个字串append到url后面，用?分割。当action为post时候，浏览器把form数据封装到http body中，然后发送到server。
2）multipart/form-data：
multipart]]></description><category></category></item><item><title><![CDATA[Method和SEL和IMP分别说下再谈下对IMP的理解?（iOS面试题）]]></title><link>https://blog.youkuaiyun.com/iOSpipi/article/details/118855368</link><guid>https://blog.youkuaiyun.com/iOSpipi/article/details/118855368</guid><author>iOSpipi</author><pubDate>Sat, 17 Jul 2021 13:46:45 +0800</pubDate><description><![CDATA[Method
先看下定义


List item
runtime.h/// An opaque type that represents a method in a class definition.代表类定义中一个方法的不透明类型
typedef struct objc_method *Method;

struct objc_method {

SEL method_name                                          OBJC2_UNAVAILABLE;



c]]></description><category></category></item></channel></rss>