
iOS面试题
BianHuanShiZhe
这个作者很懒,什么都没留下…
展开
-
swift中的枚举注意点
如果枚举定义在函数里面,那么枚举就保存在栈空间,如果定义类外就保留在数据段(也就是全局区),如果定义在类中,那么枚举就保留在堆空间中原创 2021-07-31 14:53:32 · 116 阅读 · 0 评论 -
iOS常见面试题
1. notification 是同步还是异步,和 delegate 相比有什么区别,效率呢?2. 关键字 static const 的作用3. 至少写出五种常用的设计模式,说说他们在什么情况下会用到?4. UIView 和 CALayer 的区别?5. 简述事件传递和响应者链?6. 你在项目中用过哪些数据持久化的方法,并说明为什么用这个?7. import 跟#include、@class 有什么区别?#import<> 跟 #import“”又什么区别?8. 属性 readw原创 2021-07-03 16:36:34 · 187 阅读 · 0 评论 -
iOS修改一个类的私有属性的方法
例如定义如下一个类@interface Peron : NSObject@property (nonatomic,strong) NSString *sex;@property (nonatomic,strong) NSString *address;@end#import "Peron.h"@interface Peron ()@property (nonatomic,strong) NSString *cardaddress;@end@implementation Peron.原创 2020-05-31 00:04:25 · 575 阅读 · 0 评论 -
面试指宏的问题
#include <stdio.h>#define MAX(x,y) (x)>(y)?(x):(y)main(){ int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf("%d\n",t);}宏只是简单的值的替换,不做其他的操作...原创 2020-04-27 23:46:28 · 165 阅读 · 0 评论 -
ReactCocoa使用
通过Cocoapods集成pod ‘ReactiveObjC’然后在项目中导入 #import <ReactiveObjC/ReactiveObjC.h>创建RACSignal 对象,并且发送消息@weakify(self) RACSignal *signal = [RACSignal createSignal:^RACDisposable * _Nullable(...原创 2020-04-25 19:32:42 · 1000 阅读 · 0 评论 -
textView使用小技巧
去除 textView 左右边距self.textView.textContainer.lineFragmentPadding = 0;去除TextView的上下边距self.textView.textContainerInset = UIEdgeInsetsZero;原创 2020-04-19 22:14:41 · 192 阅读 · 0 评论 -
iOS自动化打包
第一步 如果要发布到fir,需要安装 终端执行 gem install fir-cli第二步 安装RVM 如果没有安装过rvm,需要安装rvm,在终端输入rvm -v命令查看,如果打印出rvm:command not found说明没有安装过rvm,如果能打印出rvm版本等信息说明安装过。如果没有安装过rvm可以通过下面的命安装,如果已经安装过可以忽略。在终端输入 curl ...原创 2020-03-30 22:29:46 · 304 阅读 · 0 评论 -
iOS 面试题之load和initialize
以main为分界,load方法在main函数之前执行,initialize在main函数后执行相同点1 load和initialize都会自动调用,不能手动调用他们2 子类实现了load和initalize的话,会隐式的调用父类的load和initialize3 load和initialize方法内部都使用了锁,因此它们都是线程安全的不同点1 字类没有实现load方法的话,...原创 2019-12-07 17:36:12 · 215 阅读 · 0 评论 -
const和预编译指令define
引用和指针的区别 c语音没有引用的概念引用就是给变量器一个别名 ,一个引用只能在定义的时候确定所引用的变量,以后都不能改变所引用的变量引用没有独立的存储空间,,跟被引用的变量共享存储空间对引用所做的改变,就是所引用的变量所做的改变指针有独立的存储空间指针的值是可以变得引用的值不能为空,指针可以为空sizeof 引用所得到的是引用变量的大小,sizeof得到的是指针的大小...原创 2019-09-23 22:38:29 · 384 阅读 · 0 评论 -
iOS的内存管理
通过字面的方式创建出来的对象保存在常量区,通过对象方法和类方法创建出来的对象保存在堆区内存有系统管理,局部变量保存在栈,当变量离开其所在代码快就会被回收堆内存需要程序员自己管理,oc中的对象保存在堆中内存管理不当会造成的两个问题内存泄露,不再需要的对象没有释放,导致内存泄露,内存泄露会造成程序闪退野指针,正在使用的对象被释放了,导致野指针,野指针会导致程序奔溃MRC 手...原创 2019-09-21 01:43:37 · 217 阅读 · 0 评论 -
KVC解答
KVC是一种间接传值的方法,利于对象之间的解耦,让对象直接的耦合性不要太高//kev对对象赋值或者取值时,需要知道准确的键值//相比较点语法,kvc是一种间接的传递方式,这种方式有利于对象解偶,让对象直接的耦合性不要太高setValue:forKey 给对象当前的属性赋值setValue:<#(nullable id)#> forKeyPath:<#(nonnul...原创 2019-06-22 14:00:23 · 328 阅读 · 0 评论 -
iOS的Socket编程体验
网络中各结点都有相同的层次,网络中各结点都有相同的层次,不同结点相同层次具有相同的功能同一结点相邻层间通过接口通信每一层都可以使用下层提供的服务,并向上层提供服务不同结点的同等层间通过协议来实现对等层间的通信1.物理层:主要定义物理设备标准,如网线的接口类型、各种传输介质的传输速率等。主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是...原创 2019-05-31 12:21:39 · 576 阅读 · 0 评论 -
iOS的WebView和JS的交互
iOS中调用HTML1. 加载网页 NSURL *url = [[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [self.webView loadReques...原创 2019-05-18 23:27:04 · 310 阅读 · 0 评论 -
Sqlite的一些面试题
sqlite中插入特殊字符的方法和接收到处理方法。除’其他的都是在特殊字符前面加“/”,而 ' -> '' 。方法:keyWord = keyWord.replace("/","//");什么是NSManagedObject模型?NSManagedObjcet是NSObject的子类,Core Date的重要组成部分。是一个通用类,实现了Core Date模型层所需的基本功能,用...转载 2019-05-18 16:40:21 · 2315 阅读 · 0 评论 -
Runloop
从字面上讲就是运行循环它内部实现就是do「」while,在这个循环内部不断的处理各种任务一个线程对应一个Runloop,主线程的Runloop默认启动,子线程的Runloop是手动启动保持程序持续运行,处理各种各样的事情,有事运行,无事休息,节省cpu资源,提高程序性能iOS中有2套API来访问和使用RunLoopFoundation:NSRunLoopCore Found...原创 2019-05-18 15:05:49 · 154 阅读 · 0 评论 -
iOS中生成唯一的UUID
//获取一个UUID - (NSString*)uuid { CFUUIDRef uuid = CFUUIDCreate( nil ); CFStringRef uuidString = CFUUIDCreateString( nil, uuid ); NSString * result = (NSString *)CFBridgingRelease(CFStringC...原创 2019-05-19 14:43:07 · 1060 阅读 · 0 评论 -
iOS测试需要注意的问题
iOS启动的事件问题iOS两个应用之间切换的问题iOS意外断电,app数据丢失问题iOS不同电量时候,响应和流畅度iOS网络变化的时候出现的问题iOS 多点触控的问题iOS 使用过程被电话打断的问题,或者有推送消息的问题iOS多语言切换的问题iOS的切断进程,重新打开的问题...原创 2019-05-19 14:46:13 · 269 阅读 · 0 评论 -
iOS提供的音频处理方法
iPhone OS主要提供了几种播放音频的方法?SystemSound ServicesAVAudioPlayer 类Audio Queue ServicesOpenAL使用AVAudioPlayer类调用哪个框架、使用步骤?AVFoundation.framework步骤:配置 AVAudioPlayer 对象;实现 AVAudioPlayer 类的委托方法...原创 2019-05-19 19:41:35 · 461 阅读 · 0 评论 -
Json与xml的区别:
Json与xml的区别:可读性方面:基本相同,xml的可读性比较好 可扩展性方面:都具有很好的扩展性 编码难度方面:相对而言:JSON的编码比较容易 解码难度:json的解码难度基本为零,xml需要考虑子节点和父节点 数据体积方面:json相对于xml来讲,数据体积小,传递的速度跟快些 数据交互方面:json与JavaScript的交互更加方面,更容易解析处理,更好的数据交互 数据...原创 2019-05-19 22:34:33 · 253 阅读 · 0 评论 -
KVC-KVO的底层实现原理
KVC的底层实现?当一个对象调用setValue方法时,方法内部会做以下操作:①检查是否存在相应key的set方法,如果存在,就调用set方法②如果set方法不存在,就会查找与key相同名称并且带下划线的成员属性,如果有,则直接给成员属性赋值③如果没有找到_key,就会查找相同名称的属性key,如果有就直接赋值④如果还没找到,则调用valueForUndefinedKey:和set...转载 2019-05-20 00:47:13 · 185 阅读 · 0 评论 -
Objective_C 面试题一
1.main(){ int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1));}答:2,5 *(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5 &a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个...原创 2019-05-13 18:24:31 · 403 阅读 · 0 评论 -
runtime简介
RunTime简称运行时。OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制。 对于C语言,函数的调用在编译的时候会决定调用哪个函数。 对于OC的函数,属于动态调用过程,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。 事实证明: 在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要声明过就不会报错。 在编...转载 2019-05-17 10:08:44 · 682 阅读 · 0 评论 -
const,static,extern详解
一、const与宏的区别(面试题): const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量。 执行时刻:宏是预编译(编译之前处理),const是编译阶段。 编译检查:宏不做检查,不会报编译错误,只是替换,const会编译检查,会报编译错误。 宏的好处:宏能定义一些函数,方法。 const不能。 宏的坏处:使用大量宏,容易造成...转载 2019-05-17 10:21:59 · 235 阅读 · 0 评论 -
iOS9的新关键字
iOS9新特性之关键字 iOS9新出的关键字:用来修饰属性,或者方法的参数,方法的返回值 好处: 1.迎合swift 2.提高我们开发人员开发规范,减少程序员之间交流 注意: iOS9新出关键字nonnull,nullable,null_resettable,_Null_unspecified只能修饰对象,不能修饰基本数据类型. ...转载 2019-05-17 10:26:44 · 223 阅读 · 0 评论 -
苹果的安全机制
客户端安全性处理方式网络传输协议自定义协议数据库源代码混淆现在的MD5已不再是绝对安全,对此,可以对MD5稍作改进,以增加解密的难度加盐(Salt):在明文的固定位置插入随机串,然后再进行MD5先加密,后乱序:先对明文进行MD5,然后对加密得到的MD5串的字符进行乱序...转载 2019-05-17 10:39:02 · 437 阅读 · 0 评论 -
swift的一些知识点
Swift 使用自动引用计数(Automatic Reference Counting, ARC)Swift支持面向过程编程吗?它采用了 Objective-C 的命名参数以及动态对象模型,可以无缝对接到现有的 Cocoa 框架,并且可以兼容 Objective-C 代码,支持面向过程编程和面向对象编程。Swift是一门类型安全的语言泛型解决了代码复用的问题...原创 2019-05-17 12:22:11 · 197 阅读 · 0 评论 -
iOS的通知和推送
Push Notification 是如何工作的?推送通知分为两种,一个是本地推送,一个是远程推送 本地推送:不需要联网也可以推送,是开发人员在APP内设定特定的时间来提醒用户干什么 远程推送:需要联网,用户的设备会于苹果APNS服务器形成一个长连接,用户设备会发送uuid和Bundle idenidentifier给苹果服务器,苹果服务器会加密生成一个deviceToken给用户设备,然...原创 2019-05-17 12:28:56 · 523 阅读 · 0 评论 -
iOS的推送
推送分为本地推送和远程推送,iOS系统允许的最大通知数是64推送通知分为两种,一个是本地推送,一个是远程推送 本地推送:不需要联网也可以推送,是开发人员在APP内设定特定的时间来提醒用户干什么 远程推送:需要联网,用户的设备会于苹果APNS服务器形成一个长连接,用户设备会发送uuid和Bundle idenidentifier给苹果服务器,苹果服务器会加密生成一个deviceToken给用...原创 2019-05-19 00:03:42 · 168 阅读 · 0 评论