2018年iOS面试真题

2018 IOS面试大全 2018年 北京公司面试大全。Ios面试大全。一手资料整理。 立即下载
3月面试真题

本套真题是笔者的一位朋友去小苏苏面试分享的,答案由笔者及其朋友总结,如有问题请及时纠正。

1.内存管理
内存管理:是对内存资源进行优化。内存管理三种方式:ARC(自动内存管理)、MRC(手动内存管理)、内存池。
(1)、MRC(MannulReference Counting)手动引用计数 ,iOS 5.0之前采用的内存管理机制,需要程序员手动的创建对象申请内存,然后再手动的释放。
MRC管理内存的原则:谁创建,谁释放,谁引用,谁管理。
在使用MRC时,当创建或引用一个对象的时候,需要向她发送alloc、copy、retain消息,当释放该对象时需要发送release消息,当对象引用计数为0时,系统将释放该对象。
(2)、ARC(Automatic Reference Counting)自动引用计数。iOS 5.0之后采用的内存管理机制。在代码中自动加入了retain/release,由编译器自动管理计数+1和释放。
在使用ARC时,需要设置正确的property属性(strong、weak、copy关键字),不然可能出现内存泄露。
(3)、内存池:autorelease是在创建对象的时候写的,表示加入自动释放池,当释放池销毁时,才调用引用计数-1。
2.哪些类和UIView有继承关系(直接或间接的父类、子类关系)
IOS类继承关系图
3.OC的消息机制
参考消息机制
4.优秀的设计原则
高内聚、低耦合
5.OC或swift的冒泡算法

  /*冒泡排序法的基本思想:(以升序为例)含有n个元素的数组原则上要进行n-1次排序。对于每一躺的排序,从第一个数开始,依次比较前一个数与后一个数的大小。 
 如果前一个数比后一个数大,则进行交换。这样一轮过后,最大的数将会出现称为最末位的数组元素。第二轮则去掉最后一个数,对前n-1个数再按照上面的步骤找出最 
 大数,该数将称为倒数第二的数组元素......n-1轮过后,就完成了排序。*/
    NSMutableArray *numbers = [NSMutableArray arrayWithObjects:@"17",@"28",@"36",@"15",@"39", nil];
    NSLog(@"排序前%@",numbers);
    for (int i = 0; i < 5 - 1; i++) {
        //比较的躺数
        for (int j = 0; j < 5 - 1 - i; j++) {
            //比较的次数
            if ([numbers[j] intValue] > [numbers[j + 1] intValue]) {
                //这里为升序排序
                int temp = [numbers[j] intValue];
                numbers[j] = numbers[j + 1];
                //OC中的数组只能存储对象,所以这里转换成string对象
                numbers[j + 1] = [NSString stringWithFormat:@"%d",temp];
            }
        }
    }
    NSLog(@"排序后%@",numbers);

6.线程问题
打印线程
7.为什么代理要使用关键字weak,代理里面的delegate和dataSource有什么区别
(1)防止循环引用,weak会在对象引用计数为0的时候自动释放。具体参考iOS 为什么要用weak修饰代理。
(2)datasource协议里面东西是跟内容有关的,主要是cell的构造函数,各种属性。
delegate协议里面的方法主要是操作相关的,移动编辑之类的,你都写上要用什么方法自己去翻就是了 。
8.什么时候会报unrecognized selector错误?iOS用那些机制来避免走到这一步
(1)、
对象未实现该方法。
对象已经被释放。
(2)、
- 使用[id respondsToSelector:]进行判断。
- Method resolution:objc运行时会调用+resolveInstanceMethod:或者 +resolveClassMethod:,让你有机会提供一个函数实现。如果你添加了函数,那运行时系统就会重新启动一次消息发送的过程,否则 ,运行时就会移到下一步,消息转发(Message Forwarding)。返回Nil和self,去调用第三步methodSignatureForSelector和forwarInvocation;返回receiver,如果receiver有响应就直接处理,如果没有就去对应的对象内去调用第三步;调用子类的函数,子类没有进行这几个方法的重载,在父类处理时返回子类,会死循环。
- Fast forwarding:如果目标对象实现了-forwardingTargetForSelector:,Runtime 这时就会调用这个方法,给你把这个消息转发给其他对象的机会。 只要这个方法返回的不是nil和self,整个消息发送的过程就会被重启,当然发送的对象会变成你返回的那个对象。否则,就会继续Normal Fowarding。 这里叫Fast,只是为了区别下一步的转发机制。因为这一步不会创建任何新的对象,但下一步转发会创建一个NSInvocation对象,所以相对更快点。
- Normal forwarding:这一步是Runtime最后一次给你挽救的机会。首先它会发送-methodSignatureForSelector:消息获得函数的参数和返回值类型。如果-methodSignatureForSelector:返回nil,Runtime则会发出-doesNotRecognizeSelector:消息,程序这时也就挂掉了。如果返回了一个函数签名,Runtime就会创建一个NSInvocation对象并发送-forwardInvocation:消息给目标对象。
9.介绍下分类,说下能用分类做什么?内部是如何实现的?分类中如果实现了类的相同方法会出现什么情况?
category:是为已经存在的类添加方法。
功能:
a)可以把不同的功能组织到不同的category里
b)可以有多个开发者共同完成一个类
c)可以按需加载想要的category等等。
d)减少文件数量。
内部实现:
category的方法没有完全替换掉原来类已经有的方法,而是和原有方法共存,并排在了原有方法的前面。编译时是按照顺序查找的,因此会执行category的方法。
10.写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个

#define MIN(a,b) ((a)>(b)?(b):(a))
STM32驱动AD7779:双极性电源下8通道同步ADC的SPI配置与数据采集实战 本文详细介绍了在双极性电源供电下,使用STM32通过SPI接口驱动AD7779同步ADC芯片实现8通道高精度数据采集的实战经验。重点解析了电源设计、抗干扰处理、寄存器配置、SPI通信技巧及数据校准方法,帮助工程师解决工业测量中的同步采样与噪声控制难题。 阅读详情

相关推荐

2025软考信息安全工程师真题

2025信息安全工程师软考真题

qq_40424393的博客 1707

字节跳动iOS面试真题:内存管理、渲染与启动优化解析

在iOS开发中,内存管理是决定应用稳定性的基石,从引用计数到weak的实现原理,再到autoreleasepool的优化,每一环都直接影响线上体验。而UI流畅度则取决于渲染链路是否高效,离屏渲染导致的性能瓶颈往往是卡顿的元凶。多线程环境下,GCD的队列与锁的选择、线程安全设计,同样考验开发者的工程功底。启动阶段更是用户感知的第一道关卡,从dyld加载到首帧渲染,每一毫秒都值得深挖。这些基础能力不仅是大厂面试的高频考点,更是日常开发中定位问题、优化性能的必备技能。围绕字节跳动校招真题,本文系统拆解了内存、渲染

weixin_32247165的博客 355

钣金件设计规范

为保证折弯 强度,钣金折弯钣金应大于材料的最小折弯半径。在设计U型弯曲件时,两弯曲边最好长度相等,以免弯曲时产品偏 移而产生废品,如果因为结构设计不允许两边一样长,为保证产品在模 具中准确定位,应预先在设计时添加工艺定位孔,特别是多次折弯成 形的零件,必须设计工艺孔为定位基准,以减少累计误差,保证产品 质量,如图2-11所示。凸包是依靠材料的延伸使钣金件形成局部凹陷或凸起的冲压工序凸包与拉深是完全不同的冲压工艺,凸包中材料厚度的改变为费意图性 的,即厚度的少量改变是变形过程中形成的,不是设计指定的要求。

制冷技术咨询与服务的博客 7326

精选150道iOS面试题

1.UITableview创建方式 (1) 自定义高度 1 新建一个继承自UITableViewCell的类 2 重写initWithStyle:reuseIdentifier:方法 3 添加所有需要显示的子控件(不需要设置子控件的数据和frame, 子控件要添加到 contentView中) 4 进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片) 5 供2个模型 数据模型: 存放文字数据\图片数据 frame模型: 存放数据模型\所有子控件的frame\cell的高度 6 ce

cxdnxs的博客 1万+

《揭秘 BME688人工智能压力湿度温度气体传感器:气体检测的多面能手》:此文为AI自动生成

BME688 是博世推出的一款具有人工智能和集成高线性度高精度压力、湿度、温度传感器的气体传感器,专为移动和联网应用开发,尺寸紧凑且低功耗。BME688 作为一款先进的传感器,在多个领域展现出卓越的性能。它采用了坚固而紧凑的 3.0 x 3.0 x 0.9 mm³ 封装,这种小巧的尺寸使其能够轻松应用于对空间要求严格的移动设备和联网应用中。同时,低功耗的特性也使得它在能源有限的环境下能够长时间稳定运行。

zheng_ruiguo的专栏 1928

论文阅读------Exposure Fusion: A Simple and Practical Alternative to High Dynamic Range Photography

Mertens T, Kautz J, Van Reeth F. Exposure fusion: A simple and practical alternative to high dynamic range photography[C]//Computer graphics forum. Oxford, UK: Blackwell Publishing Ltd, 2009, 28(1): 161-171. 摘要 本文提出了一种将包围曝光的序列融合到高质量图像中的技术,而无需先转换为高动态范围(HD.

qq_25283239的博客 3397

面试iOS招聘题 机会在自己手中

前言 面试是我们工作的敲门砖,正好现在也到了我们金九银十的招聘季,在这我汇出32个面试题希望能帮到正在面试的你。 加油(同样有不足的地方还望指出我们一起商讨,有兴趣的可以加我的iOS交流群:642363427,因为我自始至终相信没有解决不了的问题只有逃避困难的软弱) 1. 简单介绍下NSURLConnection类及+ sendSynchronousRequest:returningResponse:error:与– initWithRequest:delegate:两个方法的区别? 答: NSURLCo

hpc_kiven的博客 651

Origin绘制带差异显著性标记的分组均值条形图|科研论文图表教程(附数据格式模板)

传统柱状图虽能呈现组间均值差异,却隐藏个体数据分布;散点图虽能展示原始数据,却难以直观凸显统计显著性。带差异显著性(*)的分组均值条形图——它以“双层叙事”的创新设计,同时呈现群体特征与个体差异。

weixin_50236590的博客 1493

2018年最新iOS面试题及答案

我结合了自己近期面试经历,总结了一份iOS面试题,基本会考到,也是比较重要比较重要比较关键的基础知识,供参考。 时间比较短,有些知识层面写的比较浅,覆盖的知识面也不够广,有时间的话我会补充。 面试的话基本会考基础,关于C、C++、数据结构、计算机网络、操作系统、计算机组成原理、数字逻辑等知识可能都会问到,本篇博文也是只针对iOS新手所写。我在总结的时候也是结合代码掌握的,死记硬背效果不太大。 ...

Apach3的博客 3854

算法设计与分析 0-1背包问题 动态规划解法【超详细】

0-1背包问题 问题描述 给定i个物品和一个容量为的背包,物品的重量是Wi,其价值为Vi 物品个数为i,背包容量为C。 如何选择装入背包内的物品,使得装入背包中的物品的总价值最大? 其中,每种物品只有全部装入背包或不装入背包两种选择。 物品不能分割,不能重复使用。 动态规划算法思路 首先建立一个数组B[i][c],最上面一行表示背包容量,最左边一列表示物品编号,中间填充的数值表示当当前背包容量为C...

寒泉 4万+

深入剖析Zynq AMP模式下CPU1中断响应机制:从原理到创新实践

在异构计算领域,Zynq-7000系列SoC的AMP(Asymmetric Multiprocessing)模式堪称多核编程的瑞士军刀。独立运行环境:CPU0运行Linux,CPU1运行FreeRTOS或裸机程序硬件资源独占:CPU0管理DDR,CPU1使用OCM(片上内存)中断隔离:默认所有中断路由到CPU0这种架构非常适合需要实时响应的工业控制系统——比如用CPU0处理网络通信,CPU1负责电机控制。AMP模式下中断路由的底层原理多维度性能优化技巧工业级可靠性的实现方案。

QQ_778132974的博客 491

那些web前端经典面试题大全及答案

阅读目录JavaScript部分JQurey部分HTML/CSS部分正则表达式开发及性能优化部分本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题,并且都给出了我在网上收集的答案。马上就要过春节了,开年就是崭新的一年,相信很多的前端开发者会有一些跳槽的悸动,通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端面试者。(如有错误或更好的答案,欢迎指正,水平有限,望各位不吝...

weixin_33743703的博客 1万+

Xilinx高级调试方法--远程调试

本文主要介绍Xilinx的一些高级调试方法,以及如何使用Xilinx的相关IP。

斌赋的博客 3308

2018年iOS面试真题(二)

4月面试真题 本套真题是笔者去美团面试(社招)分享的,答案由笔者及其朋友总结,如有问题请及时纠正。 1. 说说你对http和https的了解 http : (1)、超文本传输协议 (HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。 (2)、http 是一个客户端和服务器端请求和应答的标...

Jane's Blog 466

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

iOS校招面试复盘:从内存管理到Runloop与算法手写

在客户端开发中,Objective-C的内存管理机制是iOS工程师必须掌握的核心能力,ARC与Block的循环引用问题更是面试高频考点。理解Runloop的事件循环原理、GCD的队列与死锁场景,以及KVO的Runtime实现,不仅是应对面试的基础,也是日常开发中排查性能问题的关键。这些技术概念的价值在于,它们共同构成了iOS应用从UI渲染到多线程调度的底层支撑,广泛应用于消息列表优化、异步绘制、网络请求编排等实战场景。本文以2018年字节跳动校招iOS方向第三批面试为线索,复盘真实考察逻辑,梳理内存管理、R

weixin_32821533的博客 264

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

iOS校招笔试复盘:Runtime、weak、GCD、HTTPS与MVVM核心考点详解

在iOS开发中,理解底层原理是构建稳定应用的基础,也是技术面试中区分候选人的关键所在。Runtime作为Objective-C的动态核心,决定了消息发送、消息转发乃至方法调用的完整链路;而内存管理中的weak实现,则直接关系到对象生命周期和循环引用的排查能力。掌握这些基础概念后,开发者还需要理解GCD在多线程并发中的死锁场景与Runloop的UI刷新机制,以及HTTPS握手流程中的证书校验和密钥协商逻辑。与此同时,MVVM等架构选型从工程实践角度提出了模块解耦与可维护性的更高要求。本文以一次iOS校招笔试的

weixin_33226548的博客 331

2024最新大厂Android面试真题解析,,安卓面试题2018中高级

如果你觉得这些内容对你有帮助,可以扫码领取!!!!

D1561691的博客 905

2025终极iOS面试通关指南:从字节跳动到腾讯音乐的27套真题解析与开发笔记全攻略

你是否还在为iOS面试中的算法题绞尽脑汁?是否在准备面试时找不到全面且有深度的资料?是否希望有一个开源项目能够一站式解决你的面试和开发学习需求?本文将带你深入探索GitHub上备受好评的iOS面试题和开发笔记开源项目——iOSInterviewsAndDevNotes,帮助你系统备战面试,提升开发技能。 读完本文,你将获得: - 27套一线大厂iOS面试真题的详细解析 - 实用的iOS开发笔记和

gitblog_00769的博客 704

2024年最全浅谈Android消息机制原理,附大厂真题面经,2024年最新android面试基础问题

赠送大家一套完整的Android学习资料吧。以前一直是自己在网上东平西凑的找,找到的东西也是零零散散,很多时候都是看着看着就没了,时间浪费了,问题却还没得到解决,很让人抓狂。后面我就自己整理了一套资料,还别说,真香!资料有条理,有系统,还很全面,我不方便直接放出来,大家可以先看看有没有用得到的地方吧。

2301_82244158的博客 956

IOS工程师历年企业笔试真题汇总

https://www.nowcoder.com/test/2227/summaryiOS工程师综合练习卷(二星级) https://www.nowcoder.com/test/2231/summaryiOS工程师能力评估https://www.nowcoder.com/test/45192/summary搜狗2015 iOS工程师笔试题https://www.no...

Marmara 461

字节跳动2018 iOS校招第四批真题解析:从weak到Runloop

内存管理是iOS开发的核心基石,理解weak变量置nil的底层逻辑与循环引用排查方法,是写出稳定代码的前提。Runtime和Runloop则揭示了OC动态性与线程模型的底层原理,从消息转发到常驻线程,这些异步机制直接决定了App的响应流畅度。在UI布局中,Autolayout和UIStackView的优先级设置同样基于对视图约束的深刻理解。掌握这些基础原理不仅能应对面试中的连环追问,更能解决线上崩溃、界面卡顿等实际问题。字节跳动2018校招iOS方向(第四批)正是围绕这些关键点,构建了一套完整的iOS基本功

weixin_29611239的博客 225

2018网易iOS实习生笔试真题解析:从Runtime到架构设计全考点梳理

在iOS开发中,理解Objective-C内存管理、Runtime消息机制以及Runloop运行原理,是构建扎实技术功底的关键。这些核心概念不仅决定代码质量,更直接关系到多线程安全、性能优化和复杂问题排查能力。从引用计数规则到Method Swizzling的实际应用,从GCD死锁成因到主线程卡顿监控方案,每一个技术点都贯穿工程实践。面对常见的网络请求、图片缓存与本地存储场景,掌握TCP/HTTPS原理和断点续传设计,能有效提升App在弱网环境下的稳定性。架构选型上,MVC与MVVM的取舍、组件化思路、以及

weixin_30444111的博客 232

2024年最全Android 须知2024流行的框架库及开发语言,2024年最新面试必问知识点有哪些

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。上面分享的腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。【Android思维脑图(技能树)】知识不体系?

2401_84537603的博客 759

2024年最新Android面试经历,Android岗面试12家大厂成功跳槽

最后为了帮助大家深刻理解。

2401_84415126的博客 407

字节iOS校招笔试真题解析:OC底层与算法备考全攻略

Objective-C作为iOS开发的核心语言,其运行时机制、内存管理方法以及多线程编程模型,始终是工程师技能树中的基石。理解消息转发、引用计数与Runloop运行原理,不仅能解决日常开发中的卡顿和内存泄漏问题,更是面试中考察候选人技术深度的关键标尺。而算法与数据结构能力,则直接反映了逻辑思维与代码实现的工程素养。在字节跳动等大厂的校招笔试中,这些知识点被高度浓缩为选择题、简答题与编程题,其中动态规划、字符串处理等算法题型占比尤为突出。从基础概念出发,剖析底层原理,再到结合真题的备考策略,本文系统梳理了20

weixin_33478314的博客 325

小企业呆了3年多,人都呆废了!准备跳槽字节跳动,可是一场面试让我觉得完了!

在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。

m0_74931244的博客 605
上一篇: iOS APP转让
下一篇: 2018年iOS面试真题(二)
黑萝卜不黑
博客等级 码龄11年 41粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值