Privacy Policy for Life Journey

Effective Date: [October 21, 2024]

Life journey (“we” or “the company”) is committed to protecting your privacy. This privacy policy outlines how we collect, use, and protect your information when you use our app.

  1. Information We Collect
    When you use Life journey, we may collect the following types of information:

a. Personal Information
We collect personal information that you voluntarily provide, including:

Your name
Email address
Moment records and related notes
b. Device Information
We may collect device information, such as:

Device ID
Operating system
App version
c. Usage Data
We may collect usage data, including:

Frequency of app usage
Accessed features
Time spent in the app
2. How We Use Your Information
The information we collect will be used for the following purposes:

To provide and maintain our services
To analyze usage patterns and improve user experience
To communicate with you about app updates and features
3. Data Sharing
We do not sell, rent, or share your personal information except in the following cases:

Service Providers: We may share your data with trusted third-party service providers who assist us in delivering our services. These service providers are obligated to protect your information.
Legal Compliance: We may disclose your information in response to legal requirements or valid legal requests.
4. Data Security
We take reasonable technical and organizational measures to protect your personal information from unauthorized access, use, or disclosure. However, Internet transmissions or electronic storage are not completely secure.

  1. User Rights
    You have specific rights regarding your personal information, including:

Access and Correction: You can request access and correction of any inaccuracies in your personal data.
Deletion: You can request deletion of your personal information.
Opt-out: You can choose not to receive promotional communications by following the unsubscribe instructions in those communications.
6. Data Retention
We retain your personal data only for as long as necessary to fulfill the purposes outlined in this privacy policy or as required by law.

  1. Changes to Privacy Policy
    We may update this privacy policy periodically. Any changes will be posted on this page and will take effect immediately. We encourage you to review this policy regularly.

  2. Contact Us
    If you have any questions or concerns regarding this privacy policy, please contact us at the following email address:

Email: [w1756110665@gmail.com]

Privacy Policy for Draw Chalk

Privacy Policy

Last updated: June 12, 2024

This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights and how the law protects You.

We use Your Personal data to provide and improve the Service. By using the Service, You agree to the collection and use of information in accordance with this Privacy Policy.

Interpretation and Definitions

Interpretation

The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.

Definitions

For the purposes of this Privacy Policy:

  • Account means a unique account created for You to access our Service or parts of our Service.

  • Affiliate means an entity that controls, is controlled by or is under common control with a party, where “control” means ownership of 50% or more of the shares, equity interest or other securities entitled to vote for election of directors or other managing authority.

  • Application refers to Draw Chalk, the software program provided by the Company.

  • Company (referred to as either “the Company”, “We”, “Us” or “Our” in this Agreement) refers to Draw Chalk.

  • Country refers to: Alabama, United States

  • Device means any device that can access the Service such as a computer, a cellphone or a digital tablet.

  • Personal Data is any information that relates to an identified or identifiable individual.

  • Service refers to the Application.

  • Service Provider means any natural or legal person who processes the data on behalf of the Company. It refers to third-party companies or individuals employed by the Company to facilitate the Service, to provide the Service on behalf of the Company, to perform services related to the Service or to assist the Company in analyzing how the Service is used.

  • Usage Data refers to data collected automatically, either generated by the use of the Service or from the Service infrastructure itself (for example, the duration of a page visit).

  • You means the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable.

Collecting and Using Your Personal Data

Types of Data Collected

Personal Data

While using Our Service, We may ask You to provide Us with certain personally identifiable information that can be used to contact or identify You. Personally identifiable information may include, but is not limited to:

  • Usage Data

Usage Data

Usage Data is collected automatically when using the Service.

Usage Data may include information such as Your Device’s Internet Protocol address (e.g. IP address), browser type, browser version, the pages of our Service that You visit, the time and date of Your visit, the time spent on those pages, unique device identifiers and other diagnostic data.

When You access the Service by or through a mobile device, We may collect certain information automatically, including, but not limited to, the type of mobile device You use, Your mobile device unique ID, the IP address of Your mobile device, Your mobile operating system, the type of mobile Internet browser You use, unique device identifiers and other diagnostic data.

We may also collect information that Your browser sends whenever You visit our Service or when You access the Service by or through a mobile device.

Use of Your Personal Data

The Company may use Personal Data for the following purposes:

  • To provide and maintain our Service, including to monitor the usage of our Service.

  • To manage Your Account: to manage Your registration as a user of the Service. The Personal Data You provide can give You access to different functionalities of the Service that are available to You as a registered user.

  • For the performance of a contract: the development, compliance and undertaking of the purchase contract for the products, items or services You have purchased or of any other contract with Us through the Service.

  • To contact You: To contact You by email, telephone calls, SMS, or other equivalent forms of electronic communication, such as a mobile application’s push notifications regarding updates or informative communications related to the functionalities, products or contracted services, including the security updates, when necessary or reasonable for their implementation.

  • To provide You with news, special offers and general information about other goods, services and events which we offer that are similar to those that you have already purchased or enquired about unless You have opted not to receive such information.

  • To manage Your requests: To attend and manage Your requests to Us.

  • For business transfers: We may use Your information to evaluate or conduct a merger, divestiture, restructuring, reorganization, dissolution, or other sale or transfer of some or all of Our assets, whether as a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which Personal Data held by Us about our Service users is among the assets transferred.

  • For other purposes: We may use Your information for other purposes, such as data analysis, identifying usage trends, determining the effectiveness of our promotional campaigns and to evaluate and improve our Service, products, services, marketing and your experience.

We may share Your personal information in the following situations:

  • With Service Providers: We may share Your personal information with Service Providers to monitor and analyze the use of our Service, to contact You.
  • For business transfers: We may share or transfer Your personal information in connection with, or during negotiations of, any merger, sale of Company assets, financing, or acquisition of all or a portion of Our business to another company.
  • With Affiliates: We may share Your information with Our affiliates, in which case we will require those affiliates to honor this Privacy Policy. Affiliates include Our parent company and any other subsidiaries, joint venture partners or other companies that We control or that are under common control with Us.
  • With business partners: We may share Your information with Our business partners to offer You certain products, services or promotions.
  • With other users: when You share personal information or otherwise interact in the public areas with other users, such information may be viewed by all users and may be publicly distributed outside.
  • With Your consent: We may disclose Your personal information for any other purpose with Your consent.

Retention of Your Personal Data

The Company will retain Your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use Your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.

The Company will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period of time, except when this data is used to strengthen the security or to improve the functionality of Our Service, or We are legally obligated to retain this data for longer time periods.

Transfer of Your Personal Data

Your information, including Personal Data, is processed at the Company’s operating offices and in any other places where the parties involved in the processing are located. It means that this information may be transferred to — and maintained on — computers located outside of Your state, province, country or other governmental jurisdiction where the data protection laws may differ than those from Your jurisdiction.

Your consent to this Privacy Policy followed by Your submission of such information represents Your agreement to that transfer.

The Company will take all steps reasonably necessary to ensure that Your data is treated securely and in accordance with this Privacy Policy and no transfer of Your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of Your data and other personal information.

Delete Your Personal Data

You have the right to delete or request that We assist in deleting the Personal Data that We have collected about You.

Our Service may give You the ability to delete certain information about You from within the Service.

You may update, amend, or delete Your information at any time by signing in to Your Account, if you have one, and visiting the account settings section that allows you to manage Your personal information. You may also contact Us to request access to, correct, or delete any personal information that You have provided to Us.

Please note, however, that We may need to retain certain information when we have a legal obligation or lawful basis to do so.

Disclosure of Your Personal Data

Business Transactions

If the Company is involved in a merger, acquisition or asset sale, Your Personal Data may be transferred. We will provide notice before Your Personal Data is transferred and becomes subject to a different Privacy Policy.

Law enforcement

Under certain circumstances, the Company may be required to disclose Your Personal Data if required to do so by law or in response to valid requests by public authorities (e.g. a court or a government agency).

The Company may disclose Your Personal Data in the good faith belief that such action is necessary to:

  • Comply with a legal obligation
  • Protect and defend the rights or property of the Company
  • Prevent or investigate possible wrongdoing in connection with the Service
  • Protect the personal safety of Users of the Service or the public
  • Protect against legal liability

Security of Your Personal Data

The security of Your Personal Data is important to Us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While We strive to use commercially acceptable means to protect Your Personal Data, We cannot guarantee its absolute security.

Children’s Privacy

Our Service does not address anyone under the age of 13. We do not knowingly collect personally identifiable information from anyone under the age of 13. If You are a parent or guardian and You are aware that Your child has provided Us with Personal Data, please contact Us. If We become aware that We have collected Personal Data from anyone under the age of 13 without verification of parental consent, We take steps to remove that information from Our servers.

If We need to rely on consent as a legal basis for processing Your information and Your country requires consent from a parent, We may require Your parent’s consent before We collect and use that information.

Our Service may contain links to other websites that are not operated by Us. If You click on a third party link, You will be directed to that third party’s site. We strongly advise You to review the Privacy Policy of every site You visit.

We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.

Changes to this Privacy Policy

We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the new Privacy Policy on this page.

We will let You know via email and/or a prominent notice on Our Service, prior to the change becoming effective and update the “Last updated” date at the top of this Privacy Policy.

You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.

Contact Us

If you have any questions about this Privacy Policy, You can contact us:

常见-最新iOS面试真题总结

前言

近期的iOS面试求职算是经历了一波小高潮,话不多说,直接切入正题,下面是我最新总结的某些大厂以及小公司的面试题!

目录

  • 1、iOS 基础题
  • 2、iOS 实战题
  • 3、网络题
  • 4、计算机系统题
  • 5、设计模式题
  • 6、架构 & 设计题
  • 7、数据结构&算法题
  • 8、额外补充

1、iOS 基础题

1,分类和扩展有什么区别?可以分别用来做什么?分类有哪些局限性?分类的结构体里面有哪些成员?

2,讲一下atomic的实现机制;为什么不能保证绝对的线程安全(最好可以结合场景来说)?

3,被weak修饰的对象在被释放的时候会发生什么?是如何实现的?知道sideTable么?里面的结构可以画出来么?

4,Autoreleasepool 所使用的数据结构是什么? AutoreleasePoolPage 结构体了解么?

5,讲一下对象,类对象,元类,跟元类结构体的组成以及他们是如何相关联的?为什么对象方法没有保存的对象结构体里,而是保存在类对象的结构体里?

6,iOS 中内省的几个方法? class 方法和 objc_getClass 方法有什么区别?

7,RunLoop的作用是什么?它的内部工作机制了解么?(最好结合线程和内存管理来说)

8,哪些场景可以触发离屏渲染?(知道多少说多少)

2、iOS 实战题

1,有哪些场景是NSOperation比GCD更容易实现的?(或是NSOperation优于GCD的几点,知道多少说多少)

2,App 启动优化策略?最好结合启动流程来说(main()函数的执行前后都分别说一下,知道多少说多少)

3,App 无痕埋点的思路了解么?你认为理想的无痕埋点系统应该具备哪些特点?(知道多少说多少)

4,你知道有哪些情况会导致app崩溃,分别可以用什么方法拦截并化解?(知道多少说多少)

5,你知道有哪些情况会导致app卡顿,分别可以用什么方法来避免?(知道多少说多少)

3、网络题

1,App 网络层有哪些优化策略?

2,TCP为什么要三次握手,四次挥手?

3,HTTPS的握手流程?为什么密钥的传递需要使用非对称加密?双向认证了解么?

4,HTTPS是如何实现验证身份和验证完整性的?

5,如何用Charles抓HTTPS的包?其中原理和流程是什么?

4、计算机系统题

1,了解编译的过程么?分为哪几个步骤?

2,静态链接了解么?静态库和动态库的区别?

3,static和const有什么区别?

4,什么时候会出现死锁?如何避免?

5,有哪几种锁?各自的原理?它们之间的区别是什么?最好可以结合使用场景来说

5、设计模式题

1,除了单例,观察者设计模式以外,还知道哪些设计模式?分别介绍一下

2,iOS SDK 里面有哪些设计模式的实践?

3,设计模式的成员构成以及工作机制是什么?

6、架构 & 设计题

1,MVC和MVVM的区别?MVVM和MVP的区别?

2,面向对象的几个设计原则了解么?最好可以结合场景来说。

3,可以说几个重构的技巧么?你觉得重构适合什么时候来做?

4,你觉得框架和设计模式的区别是什么?

5,看过哪些第三方框架的源码,它们是怎么设计的?设计好的地方在哪里,不好的地方在哪里,如何改进?(这道题的后三个问题的难度已经很高了,如果不是太N的公司不建议深究)

7、数据结构&算法题

1,链表和数组的区别是什么?插入和查询的时间复杂度分别是多少?

2,哈希表是如何实现的?如何解决地址冲突?

3,排序题:冒泡排序,选择排序,插入排序,快速排序(二路,三路)能写出那些?

4,链表题:如何检测链表中是否有环?如何删除链表中等于某个值的所有节点?

5,数组题:如何在有序数组中找出和等于给定值的两个元素?如何合并两个有序的数组之后保持有序?

6,二叉树题:如何反转二叉树?如何验证两个二叉树是完全相等的?

8、额外补充

  • 1.详细描述一下UI View与 ALAyer的关系draw Rect一定会影响性能吗? UI Dynamics与UIKit Animation的最本质区别是什么?

  • 2.如何用 UllmageView显示超大分辨率的图?如果要支持缩放呢?

  • 3.了解 fishhook吗?说说为什么 fishhook不能修改非动态连接库中的符号?

  • 4.C++调用虚方法与 Objective-C发消息有什么区别?

  • 5.了解 placement new吗? Objective-C中如何实现这个功能

  • 6.如何在ARC环境下用C++标准库容器来管理Objective-C对象?

  • 7.id、sef、 super它们从语法上有什么区别?

  • 8.isa是什么?是指向Cass对象本身的指针吗?

  • 9.block修改捕获变量除了用 block还可以怎么做?有哪些局限性?

  • 10.NSDictionary与 NSHashTable有什么区别,它们的使用场景是怎样的?

  • 11.用过Swit吗?如何评价 String index的设计?

  • 12.假设 iPhone上有一个与服务器的TCP连接,此时 iPhone忽然断网,服务器能在短时间内知会 iPhone的离线吗?

  • 13.为什么 Wireshark不能直接抓取SSL的原始数据?

  • 14.backtrace是在用户态实现的吗?能否讲讲实现它的大致思路?

  • 15.malloc的指针 double free产生的异常与访问freed指针有可能产生的异常有什么区别?为什么访问 freed指针不一定产生异常?

  • 16.RunLoop是一个不停歇在运行的死循环吗?为什么?

  • 17.看过 runtime的源码吗?源码中常有的fastpath、 flowpath是什么?

  • 18.runtime中 SideTable(不是 SideTable)存在的意义是什么

  • 19.Objective-C是如何保证系统升级后的AB稳定性的?

结语

iOS面试中刷题只是一方面准备,但是,好的面试机会,离不开技术的支持,在找工作的同时,不要忘记提升自身技术,希望求职中的iOS开发者,找到一份自己满意的工作!

阿里-最新iOS面试真题总结

关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教。主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧。

阿里

一面

1、介绍项目

2、在KVO中,他是怎么知道监听的对象发生了变化?

3、字典的工作原理 ?怎100w个中是怎么快速去取value?

4、一个上线的项目,知道这个方法可能会出问题,在不破坏改方法前提下,怎么搞?

5、Block和函数指针的区别?

6、性能优化

7、YYModel和AF源码

8、如何自己设计json转model

9、架构

他们的面试官好像都爱问一下底层的东西,比如这次面试上来机会问我KVO的问题。 问题【1】,看着好像很吊的样子,仔细一样不去思考,可能还真不是太了解, 问题【2】,这个就是纯纯的数据结构的问题了。 问题【3】,这个就是iOS的runTime的问题了,要只要isa,和一些swizzling技术 问题【4】,就是看你了解有多广泛了。

二面

1、浅拷贝和深拷贝的区别

2、Block的循环引用、如何解决、原理

3、Block和delegate的比较

4、kvo的实现原理

5、Autorelease pool的实现原理

6、消息转发机制

7、线程死锁的四个条件

8、进程和线程的区别

9、持久化

10、事务的特征 中途还讨论了Masonry的约束应该写在哪里,我说应该写在layoutSubViews,他说会调用多次,然后争论了一会儿

三面

主要问了项目的一些东西 和给一些场景问我如何实现

自我介绍 介绍一些项目难点

主线程是相对于什么而言的

一张图片的内存占用大小是由什么决定的

索引的作用

索引的优缺点

在数组中找最小的k个数

淘宝下拉加载更多如何优化

淘宝页面发送HTTP请求的过程

介绍一下MVVM

知道哪些设计模式

三面面试官主要就聊了一些具体场景问题和一些基础,基础应该是没太大问题。

虎牙-最新iOS面试真题总结

关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教。主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧。

  • 一面
  1. 项目架构,项目是自己写的吗

  2. fps是怎么计算的

  3. 除了用cadisplay,还有什么方法吗

  4. kvo怎么实现

  5. leaks怎么实现

  6. 如何代码实现监听僵尸对象

  7. imageWithName什么时候发生编解码,在什么线程

  8. isa指针里面有什么

  9. 消息发送和消息转发流程

  10. 函数里面的参数怎么存储

  11. oc一个空函数里面有参数吗

  12. 他们存在栈还是寄存器

  13. 红黑树等查找时间复杂度

  14. nsdictionary的实现

  15. iOS的各种锁

  16. 如何实现dispatch once,要考虑什么问题

  17. 同一线程里面使用两个@synconize会怎么样,是递归锁还是非递归锁

  18. 如何增加按钮点击范围

  • 二面
  1. 说一下ARC

  2. autoreleasepool可以用来干嘛

  3. 里面的对象什么时候释放,是出来就释放吗

  4. 消息转发可以用来干什么

  5. runloop是干什么,你用来干什么了

  6. 说一下C++多态和虚函数表

  7. TCP如何保证数据传输完整性

  8. TCP为什么三次握手

  9. http和https,全程都是非对称加密吗

  10. 开放性问题,很多乱序数据过来,你要怎么考虑排序方法的设计

  11. 对RxSwift的看法,有用过吗?

  • 三面
  1. iOS对象指针大小

  2. 对象分配到堆还是栈

  3. http怎么区分header和body

  4. 多线程可以访问同一个对象吗,多进程呢

  5. 视频pts和dts

  6. 视频丢帧丢哪个好点

  7. iOS各种锁的性能,琐是毫秒级别还是微妙级别

  8. http请求是异步还是同步

  9. 怎么看待rn和flutter

腾讯-最新iOS面试真题总结

一面

1、介绍一下实习的项目,任务分工,做了哪些工作?介绍实习内容

2、网络相关的:项目里面使用到什么网络库,用过ASIHTTP库吗

3、断点续传怎么实现?需要设置什么?

4、在杭州HTTP请求服务器响应快,可能离服务器距离近,而在深圳访问就很慢很慢,会是什么原因?如果用户投诉,怎么分析这个问题?

5、HTTP请求的哪些方法用过?什么时候选择get、post、put?

6、TCP建立连接的过程,断开连接的过程,为什么是四次握手?

7、项目里面的数据存储都用了哪些?知道iOS里面有哪些数据存储方法?什么时候该用哪些方法存储?

8、MVVM如何实现绑定

9、block和通知的区别,分别适用什么场景

10、算法。连续问了好几个,都是数组,层层递进的,但是我忘了,只记得最后是找出数组中重复的数字

11、进程和线程的区别

12、程序在运行时操作系统除了分配内存空间还有什么

13、进程间通信的方式

14、如何检测应用是否卡顿

15、发布出去的版本,怎么收集crash日志?不使用bugly等第三方平台或者这些第三方平台是怎么收集crash日志的?

16、在block里面使用_property会造成循环引用吗?怎么解决?除了使用self->_property,可以使用valueforkey来访问吗 在block里面可以修改它的值吗setvalueforkey?可以修改它的值,可以用valueforkey来解决,显式的的使用self,block外先持有self的弱引用。

二面

1、OC中对象的结构

2、多态

3、Ping是什么协议

4、知道MTU吗

5、ARC和MRC的本质区别是什么?

6、NSThread,GCD,NSOperation相关的。开启一条线程的方法?线程可以取消吗?

7、子线程中调用connection方法,为什么不回调?因为没有加入runloop,执行完任务就销毁了,所以没有回调。

8、MVC和MVVM的区别

9、了解哪些设计模式

10、存一个通讯录,包括增删改查,用什么数据结构

11、autorelease变量什么时候释放?手动添加的是大括号结束的时候释放,系统自动释放是在12、当前runloop循环结束的时候

13、那子线程中的autorelease变量什么时候释放?

14、子线程里面,需要加autoreleasepool吗

15、GCD和NSOperation的区别?

16、项目里面遇到过死锁吗?怎么解决?数据库访问本来就是线程安全的,不会造成死锁啊。什么是死锁?

17、Viewcontroller的生命周期?

18、在init方法里面,设置背景颜色,会生效吗 会生效。为什么会?

19、WWDC2016公布了哪些新特性?对苹果系列的最新特性有关注吗

20、看过哪些源码,讲讲思路

21、两个链表找第一个相同结点

22、字符串旋转

23、找链表的倒数第k个结点

24、把一个链表比某个值大的放在左边,比它小的放在右边

25、二叉树的中序遍历,非递归

美团-最新iOS面试真题总结

关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教。主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧。

美团

一面

1、简历上写的项目问了一遍,然后开始问知识点。

2、volley的源代码,在图片缓存部分讨论了挺长时间,http中缓存机制,

3、视觉控制器的生命周期

4、数据库

5、多线程(NSTread、NSOPeration、GCDA+block)

6、http协议get post的区别

7、手机适配一些方案

8、真机调试、项目上线注意事项

9、静态方法是否能被重写 这些大概聊了1个半小时,开始的时候还有些紧张,慢慢聊开了,就好多了,面试官的语速有点快,老是需要面试官重复一遍,我也不经意间语速也变快了,不过能看出来面试官还是很厉害的。

二面

1、id和nill代表什么(nill和NULL的区别)

2、向一个nill对象发送消息会发生什么?

3、http中的同步和异步

4、MVC 和 MVVM 的区别。 用 MVVM 实现一个业务。VC 是入口,VC1 显示 “省” 的列表,VC2 显示省关联的 “市” 的列表,VC3 显示市关联的 “县” 的列表。VC 到 VC1,VC1到 VC2,VC2 到 VC3,VC3 再跳转到 VC。相关点在于如何设计 ViewModel 和 Model ,以及 VC3 到 VC。 如何编写单元测试,比如写了一个网络库,如何测试该网络库,用例怎么写的更全面一些。 代码从 Git 上拉下来到生成 .ipa 都有哪些过程,期间都生成了什么文件。 最近读过哪些书,看过哪些框架,有什么收获。 谈到 JSPatch,问 JSPatch 是如何处理 Block 的。 自己擅长的地方。 遇到过什么样的挫折。

新增二面被问到的问题:如果没有instruments,该如何检测memory leak, zombie object 之类的问题。

三面

1、iOS是如何进行资源管理的。

2、Python比较重要的几个特性

3、网络五层结构,每一层协议,由于我网络不是很好,还问了一些其他的问题(例如MAC地址和ip地址的区别等)。

先谈了下前两面的感受和问题,又和面试官聊到了单例和全局变量的区别。 Block和Protocol的区别,Block是为了解决什么问题而使用的。 iOS 的设计模式。iOS 为什么没有类似于 Java 和 C 之类的 “Builder” 的构造模式。 冒泡、插入、快速排序的平均时间复杂度和最坏时间复杂度。

堆排序。 有时间复杂度为 O(n) 的排序吗? 最近从 stackOverFlow 上解决过的问题,读过的开源框架,读过的书,业余兴趣,最有成就感的事情。

百度-最新iOS面试真题总结

关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教。主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧。

百度

一面

1、iOS基础知识

2、Python基础知识,大概是多线程,线程安全,集合类,JVM,类相关知识等。

3、iOS一些源码的阅读

4、优秀的第三方框架源码阅读

5、GLSurfaceView的相关知识,OpenGL,Shader,绘制流程。

6、询问当前做的项目,以及到具体的实现和优化。

7、多进程间的通讯,Binder机制。

8、询问看过哪些框架源码,EventBus,Volley讲了一下。

二面

1、Delegate 、Notification和KVO比较各自的优缺点

2、在一个UI的正中间实现一个正方形的红色视图有几种方式?

3、手触碰到屏幕的时候,响应机制是怎样的?第一响应者是谁?追问 UIView和UIResponse的关系是什么?

4、UIViewController的生命周期是什么?追问 UIViewController 只alloc而没用到的时候,

5、UIViewController 的view是否加载了?如果没有加载那什么时候加载? 直接用UILabel和自己用DrawRect画UILabel,哪个性能好?为什么?哪个占用的内存少?为什么?

6、AFNetworking是否支持ipv6?

7、项目采用64位,为什么要用64位?怎么修改成64位?i386是什么?他们有什么关系?

8、iOS的应用程序有几种状态?追问,退到后台代码是否可以执行?双击home键,代码是否可以执行?

9、一般使用的图标内存为多大?比如200×300的图片,内存应该占用多少比较合理?

10、说说你对内存泄漏的看法,追问,block为什么容易引起内存泄漏?

11、[object copy]是浅拷贝还是深拷贝?为什么是浅拷贝?copy是实现了哪个协议?

12、Images.xcassets和直接用图片有什么不一样?

三面

全是问得iOS方面的问题,问得真的很细,需要基础很扎实,对各个机制真的足够理解,不然确实有点难回答。

1、内存管理方面的

2、多线程

3、各种队列

4、线程锁

5、MVVM 就是考察一下我iOS方面的能力到底是否有水分吧。问得很细,确实需要基础足够扎实才行。

拼多多-最新iOS面试真题总结

关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教。主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧。

一面

  1. JSON转模型如何实现;夜间模式;播放器架构设计

  2. 请求的过程

  3. 服务端返回格式除了json还有其他的吗?

  4. 哪些OC对象是线程安全的

  5. 为什么要在主线程更新UI

  6. 如何保证OC容器在多线程下的数据安全性

  7. SDWebImage的内存怎么设计的,更新原则是什么

  8. 两个算法题:

    1. 判断括号匹配性
    2. 只有一种括号,计算最少加多少个括号,使其满足匹配

二面

  1. +load和+initialize怎么理解的,什么时候会被调用,分别讨论父类重写而子类没重写的情况

  2. 怎么理解OC的动态性

  3. 介绍下消息转发机制,说一下这些过程中用到的系统api

  4. 怎么理解Block的

  5. Block的变量截获机制

  6. __block的实现原理

  7. 内存管理机制

  8. 用户点击屏幕,系统是怎么找到一个view并决定由它来响应事件的

抖音-最新iOS面试真题总结

关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教。主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧。

一面

  1. 最近公共父节点(两个节点,都可能为null,都可能不在树上。)

  2. 反转链表(常规题)

  3. HTTP了解吗?HTTP2.0介绍下

  4. iOS9-13,每个版本讲一个特性

  5. 怎么实现多个任务执行完后,再统一处理(应该是同步阻塞、栅栏函数、调度组)

  6. 不让用SDWebImage,如何实现类似逻辑 (自己设计图片请求和缓存,简单讲了SDWebImage的思路)

  7. 每个TableViewCell都有一个UIImageView要加载图片,如果没有缓存,有五个Cell请求一个url,同时发请求肯定是不实际的,如何处理?

  8. 微信TableView滑动的时候,动图是不动的,为什么?(Runloop的Mode决定的)

  9. 有了解过WebSocket吗?

二面

  1. 如何不试用递归,打印所有一个UIView所有的subviews

  2. 设计一个图片缓存系统,并代码实现

  3. 介绍基于LLVM/Clang的静态分析

  4. 七层协议栈

  5. HTTP是哪一层的协议

  6. HTTP常见的返回码有哪些?

  7. HTTP除了GET、POST还有哪些?(UPDATE、DELETE、HEAD)

  8. HTTPS介绍一下

  9. HTTPS能防止中间人攻击吗?

  10. TCP和UDP的区别

  11. 线程和进程的区别

  12. 线程之间如何进行通讯

  13. 不使用gcd,如何保证线程安全?

  14. iOS有哪些多线程方式?(NSOperation、NSThread、GCD)

  15. 同步和异步有什么区别?

  16. 串行队列和并行队列有什么区别?

  17. 队列和线程的关系

  18. 死锁是怎么产生的?

三面

  1. 合并排序链表

  2. HTTPS用的对称加密还是非对称加密?

  3. TCP的慢启动,快恢复介绍下

  4. 客户端发送网络请求,到拿到响应的整个过程 (类似打开一个网页的过程)

  5. 接上题,如果DNS解析的时候,某个ISP服务器没有了,这时候逻辑是怎样的?

  6. 介绍了下字典转模型的设计+夜间模式的设计

  7. 为什么不用成熟的字典转模型的三方?有了解过吗?

  8. 夜间模式有什么缺点,能怎么优化?

  9. 锁有哪些?

  10. 数据存储,怎么存的(FMDB)

  11. 线程安全错误是怎么出现的?