IOS面试题object-c 21-30

21、简述IOS static 关键字的作用?

函数体内 static 变量的作用范围为该函数体,不同于 auto 变量,该变量的内存只被分配一次,


因此其值在下次调用时仍维持上次的值;
2.在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;


3.在模块内的 static 函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明 它的模块内;


4.在类中的 static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;


5.在类中的 static 成员函数属于整个类所拥有,这个函数不接收 this 指针,因而只能访问类的static 成员变量。

22、@property 后面可以有哪些修饰符?

@property后面总的有如下修饰符:


readWrite,readOnly,assign,copy,retain;


readWrite:系统会自动帮我们生成getter和setter方法;


readOnly: 系统只会帮我们生成getter方法;


assign:表示直接赋值,适用于基本数据类型:NSInteger和CGFolat


copy:使用于NSString,与NSString一起用表示浅拷贝,与NSMutableString表示深拷贝。


retain:使用于除了assign和copy之外的NSObject的子类,例如NSArray,UIView,NSDictionary等


控件用weak修饰,delegateassign和weak修饰

23、解释Object-C什么情况使用 weak 关键字,相比 assign 有什么不同?

ARC中,出现循环引用的时候,必须要有一端使用weak,比如:自定义View的代理属性


已经自身已经对它进行一次强应用,没有必要在强引用一次,此时也会使用weak,自定义View的子控件属性一般也使用weak; 但b是也可以使用strong


weak当对象销毁的时候,指针会被自动设置为nil,而assign不会* assigin 可以用非OC对象,而weak必须用于OC对象

 24、 如何Object-C让自己的类用 copy 修饰符?

想让自己所写的对象具有拷贝功能,则需实现 NSCopying 协议。

如果自定义的对象分为可变版本与不可变版本,那么就要同时实现 NSCopying 与 NSMutableCopying 协议


实现 NSCopying 协议。该协议只有一个方法:- (id)copyWithZone:(NSZone *)zone;。


实现 NSMutableCopying 协议。该协议只有一个方法:- (id)mutableCopyWithZone:(nullable NSZone *)zone;

25、简述如何重写带 copy 关键字的 setter?
重写copysetter方法时候,一定要调用一下传入的对象的copy方法,然后在赋值给该setter的方法对应的成员变量
26、 @protocol 和 category 中如何使用 @property?

protocol中使用property只会生成setter和getter方法声明,我们使用属性的目的,是希望遵守我协议的对象的实现该属性


category 使用 @property 也是只会生成setter和getter方法的声明,如果我们真的需要给category增加属性的实现,需要借助于运行时的两个函数


objc_setAssociatedObject
objc_getAssociatedObject

 27、Weak属性需要在dealloc中置nil么?
不需要,在ARC环境无论是强指针还是弱指针都无需在deallco设置为nil, ARC会自动帮我们处理
28、 自动合成属性实例变量后,@synthesize还有哪些使用场景?​
@synthesize主要就是用来生成setter,getter方法的实现,在@property被增强之后,其实已经很少使用@synthesize了,你知道@synthesize的其他使用场景吗? 能给我介绍一下吗?
如果你听懂了,感觉面试官说的很有道理,可以说点赞美的话.
29、 Object-C中向nil对象发送消息将会发生什么?​

在Objective-C中向nil发送消息是完全有效的——只是在运行时不会有任何作用:


如果一个方法返回值是一个对象,那么发送给nil的消息将返回0(nil)。例如:Person * motherInlaw = [ aPerson spouse] mother];

如果spouse对象为nil,那么发送给nil的消息mother也将返回nil。


如果方法返回值为指针类型,其指针大小为小于或者等于sizeof(void*),float,double,long double 或者long long的整型标量,发送给nil的消息将返回0。


如果方法返回值为结构体, 发送给nil的消息将返回0。结构体中各个字段的值将都是0。


如果方法的返回值不是上述提到的几种情况,那么发送给nil的消息的返回值将是未定义的。

30、Objec-C 向对象发送消息[obj foo]和objc_msgSend()函数之间有什么关系?

该方法编译之后就是objc_msgSend()函数调用.如果我没有记错的大概是这样的.


((void ()(id, SEL))(void )objc_msgSend)((id)obj, sel_registerName("foo"));

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/730442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react vue 背景挂载机器

问题:项目当中我们有的时候会遇到多个背景图片在一个地方展示的问题 当时项目比较急没有时间做工具函数,被团队优化以后有,时间进行工具函数编写 技术: 插槽 , 和 css 背景 这个还不是最终的状态 背景定位还有两个属性…

linux新一代的RPM软件包管理器dnf

linux新一代的RPM软件包管理器dnf DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHE…

探索数据结构:单链表的实战指南

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty‘s blog 前言 在上一章节中我们讲解了数据结构中的顺序表,知道了顺序…

3.8 动态规划 背包问题

一.01背包 46. 携带研究材料(第六期模拟笔试) (kamacoder.com) 代码随想录 (programmercarl.com) 携带研究材料: 时间限制:5.000S 空间限制:128MB 题目描述: 小明是一位科学家,他需要参加一场重要的国际科学大会…

2001-2022年上市公司利润表数据

2001-2022年上市公司利润表数据 1、时间:2001.12.31-2022.12.31 2、范围:上市公司 3、指标:证券代码、证券简称、统计截止日期、报表类型、投资收益、其中:对联营企业和合营企业的投资收益、公允价值变动收益、营业利润、其他综…

探讨2024年AI辅助研发的趋势

一、引言 随着科技的飞速发展,人工智能(AI)已经成为当今时代最具变革性的技术之一。AI的广泛应用正在重塑各行各业,其中,AI辅助研发作为科技和工业领域的一大创新热点,正引领着研发模式的深刻变革。从医药…

电脑小问题:Windows更新后黑屏

Windows 更新后黑屏解决方法 在 Windows 更新后,伴随了一个小问题,电脑启动后出现了桌面黑屏。原因可能是火绒把 explorer.exe 当病毒处理了。 下面讲解 Windows 更新后黑屏的解决方法,步骤如下: 1. 按 ctrl alt delete 组合键…

C语言从入门到精通 第十一章(文件操作)

写在前面: 本系列专栏主要介绍C语言的相关知识,思路以下面的参考链接教程为主,大部分笔记也出自该教程。除了参考下面的链接教程以外,笔者还参考了其它的一些C语言教材,笔者认为重要的部分大多都会用粗体标注&#xf…

fs模块_写入文件

fs:file system(文件系统) fs 模块可以实现与硬盘的交互例如文件的创建、删除、重命名、移动,还有文件内容的写入、读取,以及文件夹的相关操作 // 需求: // 新建一个文件,座右铭.txt&#xff…

升级Xcode 15-全程绿灯+高速公路

还没升级Xcode15的兄弟们,恭喜你们,看完这篇文章,让你的升级Xcode15 之路畅通无阻外加全程高速😎。 前提 系统要求:MacOS 13.5 或更高版本 系统没达到要求的兄弟,先下载好系统升级包,下载好了…

设计模式——2_4 中介者(Mediator)

我寄愁心与明月,随风直到夜郎西 ——李白《闻王昌龄左迁龙标遥有此寄》 文章目录 定义图纸一个例子:怎么调度一组地铁站台和地铁开车指挥中心 碎碎念中介者和表单平台思想但是这种平台便利性是要付出代价的变化隔离原则 姑妄言之 定义 用一个中介者对象…

抖店月销过万的爆单技巧,新手轻松月入1w+,附抖店学习资料!

我是电商珠珠 抖店开通之后,怎么才能快速出单是很多新手小伙伴困扰的问题。其实想要运营好抖店一点都不难,我做抖店也有三年多时间了,接下来我说的每一步,不管是有货源还是无货源的都适用。 1、铺货低价福利款 店铺开好之后&am…

ABAP 因去重和汇总导致金额数值错误

在去重之前,就有两条重复的,一旦进行分组汇总,金额就会翻倍,之后又进行去重,也是没有用的,错误数据是2588.6,是1294.3的两倍,现在试试先去重,再去计算数据 就是因为去重…

JAVA虚拟机实战篇之内存调优[4](内存溢出问题案例)

文章目录 版权声明修复问题内存溢出问题分类 分页查询文章接口的内存溢出问题背景解决思路问题根源解决思路 Mybatis导致的内存溢出问题背景问题根源解决思路 导出大文件内存溢出问题背景问题根源解决思路 ThreadLocal占用大量内存问题背景问题根源解决思路 文章内容审核接口的…

代码随想录-动态规划(343. 整数拆分、96. 不同的二叉搜索树)

343. 整数拆分 class Solution { public:int integerBreak(int n) {vector<int> dp(n1);dp[0] 0;dp[1] 1;for (int i2; i<n1;i){int ans 0;for (int j1; j<i/2; j){ans max(ans, max(j*dp[i-j], j*(i-j)));}dp[i] ans;}return dp[n];} }; 96. 不同的二叉搜索…

IP定位技术在金融风控中的应用研究

随着金融科技的快速发展&#xff0c;金融行业的风险也呈现出多样化、复杂化的特点。金融风控作为保障金融安全的重要手段&#xff0c;其面临的挑战也日益加剧。在这样的背景下&#xff0c;IP定位技术作为一种先进的信息技术手段&#xff0c;正逐渐成为金融风控领域的重要工具。…

会声会影软件界面字体太小 会声会影字体放大教程

会声会影做为一款经典且流行的剪辑软件&#xff0c;凭借其较低的入门门槛&#xff0c;直观的操作和丰富的功能&#xff0c;一直以来被很多用户所喜爱&#xff0c;这其中有部分是老年用户&#xff0c;他们可能因为视力较差&#xff0c;无法看清会声会影软件界面的文字的难题。今…

四 、软件架构之构件组装模型

1 、概念&#xff1a; 随着软构件技术的发展&#xff0c;人们开始尝试利用软构件进行搭积木式的开发&#xff0c;即构件组装模 型。 在构建组装模型中&#xff0c;当经过需求分析定义出软件功能后&#xff0c;将对构件的组装结构进行设计&#xff0c; 将系统划分成一组构件的…

Dockerfile的使用,怎样制作镜像

Docker 提供了一种更便捷的方式&#xff0c;叫作 Dockerfile docker build命令用于根据给定的Dockerfile构建Docker镜像。 docker build命令参数&#xff1a; --build-arg&#xff0c;设置构建时的变量 --no-cache&#xff0c;默认false。设置该选项&#xff0c;将不使用Build …

C++指针(四)万字图文详解!

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 前言 相关文章&#xff1a;C指针&#xff08;一&#xff09;、C指针&#xff08;二&#xff09;、C指针&#xff08;三&#xff09; 本篇博客是介绍函数指针、函数指针数组、回调函数、指针函数的。 点赞破六…