IOS面试题object-c 81-90

news/2024/7/20 8:44:06 标签: ios, 面试, objective-c
 81. 阐述Cocoa touch框架?
iPhone OS 应用程序的基础 Cocoa Touch 框架重用了许多 Mac 系统的成熟模式,但是它更多地专注于触摸的接口和优化
UIKit 为您提供了在 iPhone OS 上实现图形事件驱动程序的基本工具,其建立在和 Mac OS X 中一样的 Foundation 框架上,包括文件处理网络字符串操作等。

Cocoa Touch 具有和 iPhone 用户接口一致的特殊设计。

有了 UIKit,您可以使用 iPhone OS 上的独特的图形接口控件,按钮,以及全屏视图的功能,您还可以使用加速仪和多点触摸手势来控制您的应用。

各色俱全的框架 除了UIKit 外,Cocoa Touch 包含了创建世界一流 iPhone 应用程序需要的所有框架,从三维图形,到专业音效,甚至提供设备访问 API 以控制摄像头,或通过 GPS 获知当前位置
Cocoa Touch 既包含只需要几行代码就可以完成全部任务的强大的 Objective-C 框架,也在需要时提供基础的 C 语言 API 来直接访问系统。这些框架包括:

Core Animation:通过 Core Animation,您就可以通过一个基于组合独立图层的简单的编程模型来创建丰富的用户体验。

Core Audio:Core Audio 是播放,处理和录制音频的专业技术,能够轻松为您的应用程序添加强大的音频功能。

Core Data:提供了一个面向对象的数据管理 解决方案,它易于使用和理解,甚至可处理任何应用或大或小的数据模型。
功能列表:框架分类
下面是 Cocoa Touch 中一小部分可用的框架:

音频和视频:Core Audio ,OpenAL ,Media Library ,AV Foundation

数据管理 :Core Data ,SQLite

图形和动画 :Core Animation ,OpenGL ES ,Quartz 2D

网络:Bonjour ,WebKit ,BSD Sockets

用户应用:Address Book ,Core Location ,Map Kit ,Store Kit
🚀🚀🚀🚀🚀🚀
82. Objective-C的优缺点?
优点
(1)类别(Category)
        在不创建继承类的情况下,给已经存在的类添加方法。可将常用的相关方法分组。(@interface 类名(类别名) @end
(2) 扩展
        扩展实际上是类别无类别名称。它通常被称为匿名类别。声明扩展的语法使用@ interface关键字,空括号。(@interface 类名() @end
(3)冒充(Posing)
        可以使子类冒充父类,可以方便的让父类表现成子类的实现。([FracitonChild poseAsClass [Fraction class]];
缺点
(1)不支持命名空间
(2)不支持多继承
🚀🚀🚀🚀🚀🚀
83. IOS对象的方法里面:self.name= “object”;和 name =”object” 有什么不同吗?
self.name =”object”:会调用对象的setName()方法
name = “object”:会直接把object赋值给当前对象的name属性
🚀🚀🚀🚀🚀🚀
84. Object-C数组添加nil元素有问题吗?字典object与key可以设置为nil吗?

会有问题,数组中添加nil元素,程序会崩溃!报object cannot be nil错误。

字典的key不能为nil,否则会造成崩溃。

字典的object不能为nil

🚀🚀🚀🚀🚀🚀
85. Object-C数组能添加一个block吗?数组添加一个block之后再取出来,这个block还有用吗?
可以,还有用,它只是多retain了一次
🚀🚀🚀🚀🚀🚀
86. NSMutableDictionary中的setObject:forKey:与setValue:forKey:方法有什么区别?

setValue:forKey:NSKeyValueCoding协议的一部分,除其他外,它允许您从Interface Builder等访问对象属性.

setValue:forKey:是在除了以外的类中实现的NSDictionary.

setObject:forKey:是NSMutableDictionary's存在的理由.

它的签名恰好与setValue:forKey:非常相似,但更通用(例如任何键类型).签名非常相似,这有点巧合.

更令人困惑的是,NSMutableDictionary的实现在大多数情况下setValue:forKey:都是等效的setObject:forKey:.在其他类中,setValue:forKey:更改成员变量.

NSMutableDictionary,它会更改字典条目,除非您在键前加上"@"字符 - 在这种情况下,它会修改成员变量.

因此,简而言之,setObject:forKey:当您需要使用字典键和值时,以及setValue:forKey:在需要处理KVP的极少数情况下使用.
🚀🚀🚀🚀🚀🚀
 87. Objective-C中类目为什么不能添加实例变量?
因为在运行时,对象的内存布局已经确定,如果添加实例变量会破坏类的内部布局。
🚀🚀🚀🚀🚀🚀
88. Objective-C中的协议默认是@optional还是@require?在使用协议的时候应当注意哪些问题?
Objective-C中的协议默是必须实现的@require,使用协议的时候应当注意循环引用问题,多个协议之间采用逗号分隔
🚀🚀🚀🚀🚀🚀
89. 简述NSURLConnection与NSURLSession?
NSURLConnection它是CoreFoundation/CFNetwork框架的API之上的一个抽象

NSURLConnection这个名字实际指代Foundation框架的URL加载系统中一系列有关联的组件:NSURLRequestNSURLResponseNSURLProtocolNSURLCacheNSHTTPCookieStorageNSURLCredentialStorage以及同名类NSURLConnectionNSURLRequest 被传递给 NSURLConnection

被委托对象(遵守以前的非正式协议 和 )异步地返回一个 NSURLResponse 以及包含服务器返回信息的 NSData

NSURLSession包括:NSURLRequest、NSURLCache、NSURLSession、NSURLSessionConfiguration、NSURLSessionDataTask、NSURLSessionUploadTask、NSURLSessionDownloadTask。
与NSURLConnection的区别在于:NSURLSession最直接的改进就是可以配置每个Session的缓存协议,cookie以及正式策略

甚至跨程序共享这些信息。每个NSURLSession对象都由一个NSURLSessionConfiguration对象来进行初始化。
session task:负责处理数据的加载以及文件和数据在客户端与服务器之间的上次和下载

🚀🚀🚀🚀🚀🚀
90. Object-C 字符串为什么要用copy修饰?

是为了防止mutablestring被无意中修改NSMutableStringNSString的子类。

因此NSString指针可以持有NSMutableString对象。

🚀🚀🚀🚀🚀🚀


http://www.niftyadmin.cn/n/5421956.html

相关文章

Cocos2dx-lua ScrollView[二]进阶篇

一.概述 本文缩写说明:sv = ScrollView, item代表ScrollView的一个子节点 如果对sv熟系程度还不够,请阅读基础篇: Cocos2dx-lua ScrollView[一]基础篇-CSDN博客 本文介绍sv的一种封装类库,来实现快速创建sv,有如下几个优点: 1.item的位置通过参数控制,提高开发效率…

机器学习-04-分类算法-02贝叶斯算法

总结 本系列是机器学习课程的系列课程,主要介绍机器学习中分类算法,本篇为分类算法与贝叶斯算法部分。 本门课程的目标 完成一个特定行业的算法应用全过程: 懂业务会选择合适的算法数据处理算法训练算法调优算法融合 算法评估持续调优工程…

【操作系统学习笔记】处理器管理1.5

【操作系统学习笔记】处理器管理1.5 参考书籍: 王道考研 视频地址: Bilibili 线程的概念 概念 引入进程之前,系统中各进程只能串行指向。引入之后,系统中各进程可以并发执行 有的进程可能需要“同时”做很多事,而传统的进程只能串行地执…

Ubuntu20.04配置静态ip

文章目录 前言配置静态ip 前言 在 Linux 创建时默认是动态 ip,我们需要将这台 Linux 作为服务器,所以需要将动态分配的 ip 设置为静态的,防止 ip 变换。 可使用 ip addr 查看当前的 网卡 和 ip 信息: 从上图可看到动态分配的 i…

Github上哪些好用的工具

专注于web漏洞挖掘、内网渗透、免杀和代码审计,感谢各位师傅的关注!网安之路漫长,与君共勉! Qexo-爱写博客的师傅强烈推荐 漂亮的 Hexo 静态博客编辑器。该项目是基于 Django 的 Hexo 静态博客管理后台,支持文章管理、…

CSS3的一些常用语句以及解释

margin和padding position static 该关键字指定元素使用正常的布局行为,即元素在文档常规流中当前的布局位置。此时 top, right, bottom, left 和 z-index 属性无效。 relative 该关键字下,元素先放置在未添加定位时的位置,再在不改变页面…

Python 导入Excel三维坐标数据 生成三维曲面地形图(体) 5-1、线条平滑曲面且可通过面观察柱体变化(一)

环境和包: 环境 python:python-3.12.0-amd64包: matplotlib 3.8.2 pandas 2.1.4 openpyxl 3.1.2 scipy 1.12.0 代码: import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from scipy.interpolate import griddata fr…

javaEE11(servlet课后习题1,3(将思路实现一下))

1.在第5章课后习题2基础上,基于jspservletjavabean实现学生表的增删改查。 数据处理交给Servlet package servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.List;import javax.servlet.ServletException;import javax.servlet.an…