IOS笔试题题目
iOS开发工程师招聘笔试题与参考答案(某大型央企)

招聘iOS开发工程师笔试题与参考答案(某大型央企)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个选项是iOS开发中常用的UI框架?A. UIKitB. AppKitC. CocoaD. Swift2、在Swift中,以下哪个关键字用于定义一个不可变的常量?A. varB. letC. constD. readonly3、题干:在iOS开发中,以下哪个框架是用来处理网络请求的?A. UIKitB. FoundationC. CoreGraphicsD. AFNetworking4、题干:在Swift中,以下哪个关键字用于定义一个可选类型?A. maybeB. maybe?C. optionalD. ?5、题干:在Swift中,以下哪个选项是用于创建单例模式的最佳实践?A. 使用静态变量B. 使用全局变量C. 使用static letD. 使用singleton关键字6、题干:在iOS开发中,以下哪种布局方式可以保证子视图始终位于父视图的中心?A. AutoLayoutB. Absolute LayoutC. Spring FrameworkD. Storyboard7、题干:在iOS开发中,以下哪个框架主要用于处理网络请求?A. UIKitB. Core GraphicsC. Core DataD. AFNetworking8、题干:在iOS开发中,以下哪个类用于处理文本的输入和显示?A. UITextFieldB. UITextViewC. UILabelD. UIButton9、以下哪个框架是用于iOS开发中的网络请求?A. UIKitB. Core DataC. AFNetworkingD. Core Graphics二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下哪些技术是iOS开发中常用的UI组件?()A、UITableViewB、UICollectionViewC、UIWebViewD、UIImagePickerController2、以下关于iOS开发中多线程的说法,正确的是哪些?()A、iOS中可以使用GCD(Grand Central Dispatch)进行线程管理。
iOS笔试题01

1>#import和#include都能完整地包含某个文件的内容,#import能防止同一个文件被包含多次2>@class仅仅是声明一个类名,并不会包含类的完整声明;@class还能解决循环包含的问题3>#import <> 用来包含系统自带的文件,#import “”用来包含自定义的文件1>readwrite:同时生成get方法和set方法的声明和实现2>readonly:只生成get方法的声明和实现3>assign:set方法的实现是直接赋值,用于基本数据类型4>retain:set方法的实现是release旧值,retain新值,用于OC对象类型5>copy:set方法的实现是release旧值,copy新值,用于NSString、block等类型6>nonatomic:非原子性,set方法的实现不加锁(比atomic性能高)1>@property (nonatomic, retain) NSString *name;- (void)setName:(NSString *)name{if (_name != name) {[_name release];_name = [name retain];}}2>@property(nonatomic, copy) NSString *name;- (void)setName:(NSString *)name{if (_name != name) {[_name release];_name = [name copy];}}1>编译时是NSString类型2>运行时是NSData类型1>常用OC类型:NSString、NSArray、NSDictionary、NSData、NSNumber等2>OC对象需要手动管理内存,C的基本数据类型不需要管理内存id声明的变量能指向任何OC对象1>每个对象都有一个引用计数器,每个新对象的计数器是1,当对象的计数器减为0时,就会被销毁2>通过retain可以让对象的计数器+1、release可以让对象的计数器-13>还可以通过autorelease pool管理内存4>如果用ARC,编译器会自动生成管理内存的代码1>只要调用了alloc、copy、new方法产生了一个新对象,都必须在最后调用一次release或者autorelease2>只要调用了retain,都必须在最后调用一次release或者autorelease3>@property如果用了copy或者retian,就需要对不再使用的属性做一次release操作4>如果用了ARC,另外讨论NSMutableArray* ary = [[NSMutableArray array] retain];NSString *str = [NSString stringWithFormat:@"test"]; // 1[str retain]; // 2[ary addObject:str]; // 3NSLog(@"%d", [str retainCount]);[str retain]; // 4[str release]; // 3[str release]; // 2NSLog(@"%d", [str retainCount]);[ary removeAllObjects]; // 1NSLog(@"%d", [str retainCount]);结果:3、2、11>创建线程的方法NSThreadNSOperationQueue和NSOperationGCD2>主线程中执行代码[self performSelectorOnMainThread: withObject: waitUntilDone:];[self performSelector: onThread:[NSThread mainThread] withObject: waitUntilDone:];dispatch_async(dispatch_get_main_queue(), ^{});3>延时执行double delayInSeconds = 2.0;dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW,(int64_t)(delayInSeconds * NSEC_PER_SEC));dispatch_after(popTime, dispatch_get_main_queue(), ^(void){});[self performSelector: withObject: afterDelay:];[NSTimer scheduledTimerWithTimeInterval: target: selector: userInfo: repeats:];。
ios考试题及答案

ios考试题及答案1. 以下哪个是iOS开发中使用的编程语言?A. JavaB. SwiftC. PythonD. C++答案:B. Swift2. iOS应用程序的主线程被称为什么?A. 子线程B. 后台线程C. 主线程D. 网络线程答案:C. 主线程3. 在iOS开发中,哪个框架用于处理图形和动画?A. UIKitB. Core AnimationC. Core DataD. Core Location答案:B. Core Animation4. 在iOS中,哪个类是所有视图控制器的基类?A. UIViewB. UIViewControllerC. UINavigationControllerD. UITabBarController答案:B. UIViewController5. 以下哪个是iOS开发中用于网络请求的框架?A. URLSessionB. AlamofireC. AFNetworkingD. All of the above答案:D. All of the above6. 在iOS中,哪个属性用于控制视图的可见性?A. hiddenB. alphaC. visibleD. opacity答案:A. hidden7. iOS开发中,哪个方法用于在视图控制器中加载视图?A. viewDidLoad()B. viewWillAppear()C. viewDidAppear()D. viewWillDisappear()答案:A. viewDidLoad()8. 在iOS中,哪个框架用于处理音频和视频的播放?A. AVFoundationB. MediaPlayerC. CoreAudioD. AVKit答案:A. AVFoundation9. 在iOS开发中,哪个属性用于控制按钮的点击事件?A. actionB. targetC. selectorD. All of the above答案:D. All of the above10. 在iOS中,哪个方法用于在视图控制器中处理内存警告?A. didReceiveMemoryWarning()B. didReceiveMemoryWarning()C. didReceiveMemoryWarningD. didReceiveMemoryWarningWarning答案:A. didReceiveMemoryWarning()。
iOS笔试题

iOS笔试题iOS笔试题姓名_________________ 时间____________________一、填空题(20题)1、与alloc对应的方法是,与retain对应的方法是。
2、@property的作用是 , @synthesize的作用是。
3、一个对象的dealloc方法在时被调用。
4、分类(categories)能够向一个已有的类中添加。
拓展(extensions)能够在当前类中增加。
5、iOS开发者账户中,最多能够添加台设备号。
6、协议(protocal)可以分为两种,其中以关键字申明的协议可以不被实现。
7、是大多数Objective-C类继承的根类,它没有父类。
8、代理(delegate)的作用是。
9、UIViewController的didReceiveMemoryWarning方法在时会调用。
10、MVC模式中,M是指,V是指,C是指。
11、autorelase的作用是。
12、 iOS后台运行是在系统版本才开始支持。
13、代码:- (void)setName:(NSString *)newName{= newName;}被调用的结果是。
14、UDID是由位十六进制字符串组成。
15、在KVC中通用的属性访问器方法是和。
16、关键字nil在Objective-C中表示。
17、#import和#include的区别是。
18、在Objective-C中是否支持运算符重载,能否在头文件里申明私有方法。
19、在Instruments工具中,用于检查内存泄露的工具是。
20、在iOS开发环境下,后缀为.a的文件又叫做。
二、单选题(20题)1、在Objective-C中,类的成员变量默认被申明为:()A:@private B:@protected C:@public D:@package2、iPhone、iPad、iTouch中使用的架构是()A:arm B:i386 C:x86 D:IA-323、下面哪个类在iPhone应用程序开发时不能使用 ( )A:UITabViewController B:UINavigationController C:UISplitViewController D:UITableViewController4、关于Objective-C++中的异常处理,下面说法最正确的是()A:Objective-C不支持异常处理B:在Objective-C++中,Objective-C的异常处理能够捕获C++的异常C:在Objective-C++中,Objective-C的异常处理不能捕获到C++的异常D:在Objective-C++中,Objective-C和C++的异常处理可以相互捕获异常5、在对象的dealloc方法中,关于[super dealloc];语句说法正确的是()A:[super dealloc];有没有没有关系B:[super dealloc];应该放在dealloc方法内的第一行C:[super dealloc];应该放在dealloc方法内的最后一行D:[super dealloc];位置无所谓,只要在dealloc方法里有就可以6、下面关于方法:[[[object method1] method2] method3:[object method4]];中的method调用顺序是 ( ) A: 1 2 3 4 B: 1 2 4 3 C:4 1 2 3 D: 4 3 2 17、iOS开发中,HTTPS通讯是在什么位置来保障安全性()A:NSURLRequest方法里B: NSURLRequest代理方法里C:NSURLConnection方法里 D:NSURLConnection代理方法里8、关于NSURLConnection同步通讯和异步通讯,下面说法正确的是()A: 同步通讯是指发送数据后,不等接收方回应,接着发下一个数据B: 异步通讯时会阻塞当前线程C: 发送同步通讯时,系统会自动创建一个单独的线程D:一般不在主线程中使用同步通讯,因为会引起主线程阻塞9、下面方法中,那一个方法没有创建新的线程()A: + (void)detachNewThreadSelector:(SEL)selector toTarget:(id)target withObject:(id)argument;B: - (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument;C: - (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg;D: - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;10、ARC(Automatic Reference Counting)模式下,下面哪个方法是未被禁用的: ( ) A:retain B:copy C:release D:autorelease11、下面不是标准UIButton类型的是( ) A:UIButtonTypeRoundedRect B:UIButtonTypeContactAdd C:UIButtonTypeRadio D:UIButtonTypeInfoLight12、在给UIButton设置图片时,为了让图片适应按钮的大小,需要将按钮的contentMode设置为:( ) A: UIViewContentModeScaleToFill B: UIViewContentModeScaleAspectFit C: UIViewContentModeScaleAspectFill D: UIViewContentModeCenter13、关于UIControl和UIView之间的关系,下面说法正确的是( )A:UIControl继承于UIView B:UIView继承于UIControlC:UIControl与UIView之间没有继承关系D:UIControl和UIView都是直接继承于UIResponder14、关于应用程序目录在更新、恢复和更新过程的变化,下面说法错误的是()A:在备份过程中 /Library/Caches目录会被备份B:在应用程序更新过程中,/Documents目录会被保留C:在备份过程中/tmp目录将不会被备份D:在应用程序更新过程中,/Library/Preferences目录会被保留15、iPhone上,不能被应用程序直接调用的系统程序是()A:通讯录B:短信 C:日历D:邮件16、下列UIView的方法中,哪一个在前后的系统调用机制不同()A: addSubView B:layoutSubView C:drawRect D:removeFromSuperView17、构造UIImage的方法中,占用内存最大的哪个方法()A:imageNamed B:imageWithContentsOfFile C:imageWithData D:三者一样大18、下列对象中不能调用initWithContentsOfFile方法进行构造的是()A:NSString B:NSXMLParser C:NSDictionary D:NSData19、关于iCloud,下面说法错误的是()A:可以通过程序,将一个文档保存到用户的iCloud里B: 用以通过程序,在iCloud里只保存一个键值对C: 不能在模拟器上测试iCloud程序D: 程序使用iCloud时,只需要使用相应的API即可,不需要额外的配置20、应用程序大小超过多少时,只能通过WiFi从App Store 上下载( ) A:5MB B:10MB C:20MB D:100MB三、多选题(10题)1、下面哪些方法是UITableView的delegate方法: ( ) A: - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;B: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;C: - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;D: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;2、下面哪些关键字会引起对象的引用计数(retainCount)加一:( ) A:alloc B: init C:retain D:copy3、在以.mm为拓展名的文件里,可以包含的代码有哪些( ) A:C B:Objective-C C:C++ D:Java4、下面哪些类中使用到了单例(Singletion)模式( ) A:NSFileManager B:NSNotificationCenter C:UIApplication D:UIDevice5、可以通过代码进行写操作的文件或目录有( ) A:bundle目录B:Documents目录 C:keychain D:SQLite6、下面各数据类型中,能够直接放进NSArray数组的有:( ) A:BOOL B:NSInteger C:NSString D:NSArray7、Objective-C的快速枚举对比循环访问的优点,下面说法正确的是 ( ) A: 使用快速枚举效率更高B: 语法更简洁C:使用更安全D:支持更多的数据类型8、关于XML和JSON,下列说法正确的有:( ) A:XML是一种类似HTML的语言,JSON是一种轻量级的数据交换格式。
ios题库

D.在两套天线之间智能切换传送和接受功能的手机,可以实现更好的接听效果.
三、填空
1.高效节能的A5双核处理器和i0S5为iPhone4S带来了出众的电池使用时间,在3G和2G的网络下,通话时间分别长达_8__小时和___14_小时。视频播放时间长达___20__小时。
(1)先将SD卡的照片传入电脑上的itunes再通过电脑上的itunes导入iPhone4S
(2)在安卓手机下载同步助手,然后再用同步助手导入到iphones4S
2.请列举iPhone4S的卖点,并讲讲你会如何想顾客推荐这些卖点。(写3种就可以)10分
(1)Facetime在无网络运营商的情况下只需要无线局域网的环境里就可以实行视频通话
B运行iOS4以上系统的苹果产品
C运行iOS 5的iPhone、iPad或iPod touch
D仅仅是iPhone
12.(C)些应用程序组成了iPad上的生产力套装软件iWork。
AWord、Excel、Power Point
BiMovie、iLife、iPhoto
CPages、Keynote、Numbers
2.iPhone4S内置__800___像素优质射像头,可拍摄__1080P__高清视频.
3.iPhone4S采用了Apple设计的双核A5芯片,可提供相比iPhone4高___2__倍的处理性能和__7___倍的图形处理能力.
四、简答题
1.如何将安卓手机SD卡中的电话本导入到iPhone4S中?(至少写出两中方式) 10分
DFaceTime、Photo Booth、iPhoto
13.iPodTouch的音乐播放时间是(D)个小时
ios开发工程师笔试题

ios开发工程师笔试题
预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制
1.沙盒是什么,你理解的沙盒的作用是干什么?
2.浅克隆和深克隆区别是什么,阐述一个你在项目开发中遇到深拷贝的场景。
3. 谈谈你对IOS的推送机制原理的理解。
4.数据库现有三张表,分别为:
Goods(商品表): ID商品编号、NAME商品名称、MANUFACTURER生产商、SID规格编号
Spec(规格表):ID规格编号、COLOR颜色、SIZE尺寸
Sales_record(销售记录表):ID销售记录流水号、GID销售商品编号、COUNT销售量
(1)请设计查询语句查出规格编号为1销售量最多的商品编号、商品名称、颜色、尺寸;
(2)请设计查询语句查出生产商在上海(以上海开头)的商品的销售量总和;
5.谈谈你对KVO和KVC的理解,项目有没有应用到,如果应用到,请说下应用场景。
6.阐述项目中如何使用HTTP请求
7.谈谈你对约束的理解,有没有用过,如果有,请说明应用场景。
8.简单阐述你的应用使用多线程的理解。
9.现在一个班上有10个每个高低不同的人,先把10个人打乱排队,如何用程序排序的算法,把10个人按照高低或者低高的顺序排序。
10.谈谈你对工厂方法设计模式的理解及写个简单伪代码。
iOS笔试题目

1.delegate中的property使用以下哪个属性(A)A.assignB.retainC.copyD.Strong选A ;避免循环引用!那么就要知道循环引用是怎么来的?比如,使用tableview 的时候我们会设置他的delete;可能一般情况下是你的viewcontroller 对象;viewcontroller 持有着这个 tableview,如果 tableview 不使用assign (arc 使用weak)的话,那么就造成了 tableview 持有viewcontroller,即相互持有,最终结果是 viewcontroller 内存泄露,释放不掉了;这是一个很严重的问题!viewcontroller 是一个很大的对象!B,D 是一个意思,都是持有(保留);copy的话就更不可能了,原因很简单, tableview 怎么知道他的delete 有没有实现copying 协议呢!2.关于Objective-C中属性的说明,以下错误的是(D)A.readwrite是可读可写特性,需要生成getter方法和setter方法B.readonly是只读特性,只有getter方法,没有setter方法C.assign是赋值属性,setter方法将传入参数赋值给实例变量D.retain表示持有特性,copy属性表示拷贝属性,都会建立一个相同的对象Copy是创建一个新对象,Retain是创建一个指针,引用对象计数加1。
Copy属性表示两个对象内容相同,新的对象retain为1 ,与旧有对象的引用计数无关,旧有对象没有变化。
copy减少对象对上下文的依赖。
Retain属性表示两个对象地址相同(建立一个指针,指针拷贝),内容相同,这个对象的retain值+1也就是说,retain 是指针拷贝,copy 是内容拷贝3.下面对category描述不正确的是(B)A.category可以添加新的方法B.category可以删除修改之前的方法C.将类的实现分散到多个不同文件或多个不同框架中D.创建对私有方法的前向引用类别是一种为现有的类添加新方法的方式。
iOS笔试题及答案

1. 什么是ARC/MRC,ARC无法管理内存的情况?答案1.ARC: 自动引用计数。
OC自动内存管理机制,2.区别于MRC需要手动管理引用计数retain或release 对引用计数+1 -1操作。
这种操作耗费精力容易出错,比如在多线程操作有时不确定哪个线程最后使用完毕,在模块化时对象被多个模块创建和使用,不能确定最后由谁去释放。
无法管理内存的情况?**1***Block或Delegate的循环引用解决的方法:掐断其中的一条强引用,使之变成弱引用,变成这样,就打破了循环引用:__weaktypeof (self) weakSelf =self;Delegate 要用weak修饰***2**NSTimer未释放在使用NSTimer addtarget 时,为了防止target 被释放而导致的程序异常,timer 会强引用target,所以这也是一处内存泄露的隐患。
解决方法是使用线程安全的MSWeakTimer,然后在dealloc中主动调用invalidate**3***非OC对象2.如何理解retain/copy/assign/release/autor release/dealloc 关键字?答案copy:建立一个索引计数为1的对象,然后释放旧对象,主要用于nsstring;retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1对其他NSObject和其子类assign: 简单赋值,不更改索引计数release:手动释放对象;dealloc:它的作用是,当对象的引用计数为0,系统会自动调用dealloc方法,回收内存。
autorelease 原理:a.先建立一个autorelease poolb.对象从这个autorelease pool里面生成。
c.对象生成之后调用autorelease函数,这个函数的作用仅仅是在autorelease pool中做个标记,让pool记得将来release一下这个对象。
ios笔试题及答案

IOS笔试题及答案1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?(8分)答:Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好,用Category 去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系。
2. #import 跟#include 又什么区别,@class呢, #import<> 跟#import””又什么区别?(8分)答:#import是Objective-C导入头文件的关键字,#include是C/C++导入头文件的关键字,使用#import头文件会自动只导入一次,不会重复导入,相当于#include和#pragma once;@class告诉编译器某个类的声明,当执行时,才去查看类的实现文件,可以解决头文件的相互包含;#import<>用来包含系统的头文件,#import””用来包含用户头文件。
3. 属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用?(8分)1. readwrite 是可读可写特性;需要生成getter方法和setter方法时2. readonly 是只读特性只会生成getter方法不会生成setter方法;不希望属性在类外改变3. assign 是赋值特性,setter方法将传入参数赋值给实例变量;仅设置变量时;4. retain 表示持有特性,setter方法将传入参数先保留,再赋值,传入参数的retaincount会+1;5. copy 表示赋值特性,setter方法将传入对象复制一份;需要完全一份新的变量时。
6. nonatomic 非原子操作,决定编译器生成的setter getter是否是原子操作,atomic表示多线程安全,一般使用nonatomic4.写一个setter方法用于完成@property (nonatomic,retain)NSString *name,写一个setter方法用于完成@property(nonatomic,copy)NSString *name(8分)- (void) setName:(NSString*) str{[str retain];[name release];name = str;}- (void)setName:(NSString *)str{id t = [str copy];[name release];name = t;}5.对于语句NSString*obj = [[NSData alloc] init]; obj在编译时和运行时分别时什么类型的对象?(8分)编译时是NSString的类型;运行时是NSData类型的对象6.常见的object-c的数据类型有那些,和C的基本数据类型有什么区别?(8分)object-c的数据类型有NSString,NSNumber,NSArray,NSMutableArray,NSData等等,这些都是class,创建后便是对象,而C语言的基本数据类型int,只是一定字节的内存空间,用于存放数值;NSInteger是基本数据类型,并不是NSNumber的子类,当然也不是NSObject的子类。
iOS考试题

一选择题1.ObjC中,与alloc语义相反的方法是() ,与retain语义相反的方法是(),需要与alloc配对使用的方法是()A. deallocB. releaseC. atuorelease2.下面方法哪个是类方法(),哪个是实例方法()A. -(void)methodA B. +(void)methodB3.ios中的文件管理类是()A.UIFileManager .B. NSFile C. NSFileMangager D. UIFile4.要实现自定义对象的归档必须实现现的协议是()A. NSCopying B. NSCoding5.下面哪个是可变对象()A。
NSString B. NSArray C. NSMutableDictionary D.NSSet6.开始一个类实现的指令是()A. @interface B. @protocol C.@implementation D.@property7.有一个类A继承自NSObject,包含一个方法+(void)aMethod:(int)value,实例化一个类A并调用aMethod方法,以下语句哪个是正确的()A.Aa=[[A alloc] init];[a aMethod:10];B. A*a=[[A alloc] init];[a aMethod:10];C. A*a=[[A alloc] init];[A aMethod:10];8.UITableView的直接父类是()A. UIView B.UIScrollView C.UIResponder D.NSObject9.让一个UIView刷新的方法是()AinitWithFrame B loadView C.drawRect D. setNeedsDisplay10.UINavigationController类的初始化方法initWithRootViewController 接受的参数不能是下面哪个类的实例()A.UIV iewController B.UITableViewController C.UITabBarController D. UINavigationController二.解释题1.在一个对象的方法里面 = @"object"; 和name =@"object" 有什么不同吗?2.什么是retain count?3.定义属性时,什么情况使用copy,assign,和retain 。
ios笔试题及答案

ios笔试题及答案一、题目描述:1. 请简述iOS的MVC架构是什么?答案:iOS的MVC架构即Model-View-Controller架构,用于分离应用程序的数据模型、用户界面和控制逻辑。
Model负责处理数据的存储、检索和修改,View负责显示用户界面,Controller负责管理用户交互并根据用户操作更新Model和View。
2. 什么是iOS的Autolayout?答案:Autolayout是iOS中的一种界面布局方式,用于实现适配不同屏幕尺寸和方向的界面。
通过使用约束关系来描述视图之间的关系,Autolayout可以自动调整和计算视图的位置和大小。
3. 请简要介绍iOS中的多线程编程方式。
答案:iOS中的多线程编程方式包括:- NSThread:通过创建和管理自己的线程对象来实现多线程。
- GCD(Grand Central Dispatch):使用队列(dispatch queue)来管理任务的执行,自动进行线程的调度。
- NSOperation:基于GCD之上的高层抽象,通过将任务封装成操作(operation)来实现多线程。
二、题目解答:1. iOS的MVC架构是一种经典的软件设计架构,它将应用程序分为三个部分:Model、View和Controller。
下面分别介绍这三个部分的作用:- Model:代表应用程序的数据模型,负责处理数据的存储、检索和修改。
它通常包含数据结构、数据库操作和网络请求等功能。
- View:代表用户界面,负责显示数据和用户交互。
它包含了屏幕上显示的各种元素,如按钮、标签、文本框等。
- Controller:作为Model和View之间的连接器,负责处理用户输入、更新Model和View之间的关系。
它接收用户交互事件,调用Model的方法进行数据处理,更新View的显示。
MVC架构的优点是分离了应用程序的不同功能部分,使得各部分可以独立开发和测试,易于维护和扩展。
ios笔试题及答案

ios笔试题及答案1. 什么是iOS?A. 苹果公司的移动操作系统B. 苹果公司的桌面操作系统C. 微软公司的移动操作系统D. 谷歌公司的移动操作系统答案:A2. iOS系统支持的设备类型包括哪些?A. iPhoneB. iPadC. iPod TouchD. 所有以上选项答案:D3. 在iOS中,用于开发应用程序的主要编程语言是什么?A. SwiftB. JavaC. PythonD. C++答案:A4. iOS应用程序的扩展名是什么?A. .appB. .exeC. .ipaD. .apk答案:C5. 在iOS开发中,哪个框架用于创建用户界面?A. UIKitB. SwiftUIC. React NativeD. Flutter答案:A6. iOS应用程序的生命周期包括哪些阶段?A. 启动、运行、暂停、恢复、退出B. 启动、运行、暂停、终止C. 启动、运行、暂停、恢复、终止D. 启动、运行、暂停、恢复、退出、终止答案:C7. 在iOS中,哪个工具用于测试应用程序的性能?A. XcodeB. InstrumentsC. SimulatorD. TestFlight答案:B8. iOS应用程序的图标尺寸是多少?A. 180x180 pixelsB. 1024x1024 pixelsC. 120x120 pixelsD. 57x57 pixels答案:A9. iOS应用程序的最小支持版本是什么?A. iOS 7B. iOS 8C. iOS 9D. iOS 10答案:A10. iOS应用程序的发布平台是什么?A. App StoreB. Google PlayC. Microsoft StoreD. Amazon Appstore答案:A。
ios内审试题及答案

ios内审试题及答案iOS内审试题及答案1. iOS开发语言是什么?- A. Java- B. Swift- C. Objective-C- D. Python- 答案:B. Swift2. iOS应用商店的名称是什么?- A. Google Play- B. App Store- C. Microsoft Store- D. Amazon Appstore- 答案:B. App Store3. 以下哪个是iOS开发中常用的设计模式?- A. MVC- B. MVVM- C. MVP- D. All of the above- 答案:D. All of the above4. 在iOS开发中,哪个框架用于处理用户界面? - A. Core Data- B. UIKit- C. Core Animation- D. Core Bluetooth- 答案:B. UIKit5. iOS设备上,哪个服务用于推送通知?- A. APNs- B. GCM- C. FCM- D. AWS SNS- 答案:A. APNs6. iOS开发中,哪个工具用于分析应用的性能?- A. Xcode- B. Instruments- C. Simulator- D. TestFlight- 答案:B. Instruments7. 在iOS中,哪个属性用于设置视图控制器的根视图? - A. rootView- B. rootViewController- C. rootViewControler- D. rootView- 答案:B. rootViewController8. iOS应用的最小部署目标版本是多少?- A. iOS 10- B. iOS 11- C. iOS 12- D. iOS 13- 答案:A. iOS 109. 在iOS开发中,哪个类用于管理网络请求?- A. URLSession- B. NSURLConnection- C. Alamofire- D. AFNetworking- 答案:A. URLSession10. iOS应用中,哪个方法用于处理应用生命周期事件? - A. `applicationDidFinishLaunching`- B. `viewDidLoad`- C. `viewWillAppear`- D. `viewDidAppear`- 答案:A. applicationDidFinishLaunching11. iOS开发中,哪个框架用于处理本地数据库?- A. CoreData- B. SQLite- C. Realm- D. All of the above- 答案:D. All of the above12. 在iOS开发中,哪个属性用于控制视图的可见性? - A. `hidden`- B. `visible`- C. `show`- D. `display`- 答案:A. hidden13. iOS开发中,哪个方法用于获取当前设备的方向? - A. `deviceOrientation`- B. `interfaceOrientation`- C. `currentOrientation`- D. `orientation`- 答案:B. interfaceOrientation14. 在iOS中,哪个类用于处理多线程?- A. `NSThread`- B. `UIThread`- C. `GCD`- D. `NSOperation`- 答案:A. NSThread15. iOS开发中,哪个方法用于在视图控制器中添加导航条按钮? - A. `addBarButton`- B. `addBarButtonItem`- C. `setNavigationBarItems`- D. `addNavigationItem`- 答案:B. addBarButtonItem请根据以上试题及答案进行复习和准备。
iOS 笔试题【90%的选中率】

8.ViewController 的 viewDidLoad,viewWillAppear,viewDidUnload,dealloc 分别是在什么时候调用,在自定义 ViewController 的时候这几个函数里面应该做什么工作?
9.简述 objective-c 内存管理的实现机制,并简述什么时候由你负责释放对象,什么时候不由 你释放 10.类的定义及声明文件以什么为后缀名? 11.怎样自动生成属性的获取方法和设置方法 12.声明一个静态方法和一个实例方法 13.写一个发送同步 http 请求,并获得返回结果的方法 14.怎样启动一个新线程,子线程怎样刷新主 UI 15.什么是 MVC,你工作时怎样运用它
NSString *documentsDirectory = [paths objectAtIndex:];
// 创建文件系统管理器
NSFileManager *fileManager = [[NSFileManager alloc] init];
// 判断 userData 目录是否存在
if(
卷一:技术题部分一、不定项选择题:基础理论知识,(10题×4分,合计40分)1、以下线性表中能使用二分查找的有()A. 链接方式存储,元素无序B. 链接方式存储,元素有序C. 顺序方式存储,元素无序D. 顺序方式存储,元素有序2、贪婪法是一种()的算法。
A.不求最优,只求满意 B.只求最优 C.求取全部可行解 D.求取全部最优解3、下列是散列(哈希)算法的有()A. MD5 B.DES C.SHA-1 D.RSA E.RC44、下列四个不同数制表示的数中,数值最大的是()A.二进制数01111011 B.八进制数175C. 十进制数123D. 十六进制数7B5、0x12345678在采用BigEndian字节序时在内存中的排列顺序是(),在采用LittleEndian 字节序时在内存中的排列顺序是()A.12 34 56 78 B.34 12 78 56 C.78 56 34 12 D.56 78 12 346、在提供虚拟存储的系统中,用户的逻辑地址空间主要受()的限制。
A. 内存空闲块的大小 B.外存的大小 C.计算机编址范围 D.页表大小7、虚存页面调度算法有多种,()调度算法不是页面调度算法。
A.后进先出 B.先进先出 C.最近最少使用 D.随机选择8、在LINUX某个目录下执行命令ls -l后,得到关于某个文件(假设文件名为a)权限的字符串为“-rwxr-xr--”,则与此用户在同一组的用户对该文件a所拥有的操作权限有()A. 读B. 写C. 执行D. 没有任何操作权限9、当出现()情况时,系统可能产生死锁。
A. 进程释放资源B. 一个进程进入死循环C. 多个进程竞争,资源出现了循环等待D. 多个进程竞争共享型设备10、FTP默认的数据端口号是(),HTTP默认的端口号是()A.20 B.21 C.22 D.23E.25 F.80 G.1024 H.8080二、不定项选择题:语言知识。
IOS软件工程师笔考试试题(全选择题)【0-1年经验】

单选题(共25题)1.OC中包含一个自定义的头文件应该使用:A.#include ""B.#include<>C.#import ""D.#import<>2.必须实现的协议方法使用:关键字声明.A.@propertyB.@interfaceC.@requiredD.@protocol3.NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"2", nil]; NSMutableSet *set = [[NSMutableSet alloc]init];for(NSString *str in array){[set addObject:str];}NSLog(@"%lu",[set count]);[set release];控制台打印的结果是:A.4B.5C.6D.74.声明一个方法:提供Student对象数组按照学号升序排列的判断条件:A.-(NSComparisonResult)compareWithNumberForAscendSort:(Student*)otherStudentB.-(NSInteger)compareWithNumberForAscendSort:(Student*)otherStudentC.- (BOOL))compareWithNumberForAscendSort:(Student*)otherStudentD.+(int)compareWithNumberForAscendSort:(Student5.OC语言中类的实例变量如果只可以被本类和其子类访问,需要下列哪个修饰符:A.@publicB.@privateC.@protectedD.@friendly6.关于集合描述不正确的是:A.所有的集合都可以添加元素。
iOS笔试题

1、即时聊天App不会采用的网络传输方式A. UDPB. TCPC. HTTPD. FTPFTP:是文件传输协议,是File Transfer Protocol的简称,它的作用是用于控制互联网上文件的双向传输,因此一定不会是即时聊天使用的;UDP:是面向无连接的传输层协议,数据传输是不可靠的,它只管发,不管收不收得到;TCP:是面向连接的,可靠的传输层协议;HTTP:是超文本传输协议,对应于应用层,而HTTP是基于TCP 的。
关于socket理论基础知识,更详细可阅读下面的文章:Socket 理论知识参考答案:D-----------------可爱的分割线------------------2、下列技术不属于多线程的是A BlockB NSThreadC NSOperationD GCD苹果提供了NSThread、NSOperation、GCD这三种技术用于处理多线程。
对于NSThread是需要自己管理其生命周期的;对于NSOpeartion也是常用的技术之一,通常与NSOperationQueue一起配合使用;对于GCD是平时见到最多的,使用起来很方便,而它与block配合起来使用,简单而且简洁。
Block不是一项技术,只是代码段,但是具备自动捕获上下文信息的功能,与函数指针有点类似,其实全局函数就是特殊的block。
关于NSOperation/NSOperationQueue,可阅读笔者的文章:多线程之NSOperatoin/NSOperationQueue;参考答案:A-----------------可爱的分割线------------------3、线程和进程的区别不正确的是A 进程和线程都是由操作系统所提供的程序运行的基本单元B 线程之间有单独的地址空间C 进程和线程的主要差别在于它们是不同的操作系统资源管理方式D 线程有自己的堆栈和局部变量这是学习操作系统知识的时候经常会考试的内容,但是在工作中经常会遇到多线程处理问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. delegate中的property使用以下哪个属性()
A. assign
B. retain
C. copy
D. Strong
2. 关于Objective-C中属性的说明,以下错误的是()
A.readwrite是可读可写特性,需要生成getter方法和setter方法
B.readonly是只读特性,只有getter方法,没有setter方法
C.assign是赋值属性,setter方法将传入参数赋值给实例变量
D.retain表示持有特性,copy属性表示拷贝属性,都会建立一个相同的对象
3. 下面对category描述不正确的是()
A.category可以添加新的方法
B.category可以删除修改之前的方法
C.将类的实现分散到多个不同文件或多个不同框架中
D.创建对私有方法的前向引用
4. NSRunLoop的以下描述错误的是()
A.Runloop并不是由系统自动控制的
B.有3类对象可以被run loop监控:sources,timers,observers
C.线程是默认启动run loop的
D.NSTimer可手动添加到新建的NSRunLoop中
5. 单例类NSNotificationCenter提供信息广播通知,它采用的是观察者模式的通知机制。
()
A. 对
B. 错
6. 判断:从通讯录数据库查询联系人数据,可通过ABAddressBookCopyArrayOfAllPeople和ABAddressBookCopyPeopleWithName函数获得。
()
A. 对
B. 错
7. NSURLConnection类的同步请求方法是()
A.+ sendSynchronousRequest:returningResponse:error:
B.–initWithRequest:delegate:
C.–initWithRequest:delegate:startImmediately:
8. genstrings命名的基本语法:genstrings [-a] [-q] [-o] sourcefile()
A.对
B.错
9. 面哪些属于UITableViewDelegate协议的方法()
A.tableView:cellForRowAtIndexPath:
B.tableView:numberOfRowsInSection:
C.tableView:didSelectRowAtIndexPath:
D.numberOfSectionsInTableView:
10. 平铺导航模式是在内容组织上没有层次关系,展示的内容都放置在一个主屏幕上,采用分屏或分页控制器进行导航,可以左右或者上下滑动屏幕查看内容()
A.对
B.错
多选:
1. UIPopoverController控制器的常用方法和属性()
A.presentPopoverFromBarButtonItem:permittedArrowDirections:animated:呈现Popover视图方法
B.dismissPopoverAnimated: 关闭Popover视图方法
C.popoverVisible,判断Popover视图是否可见
D.popoverArrowDirection,判断Popover视图箭头的方向
2. 模态视图专用属性有哪些()
A.UIModalPresentationFullScreen,全屏状态,是默认呈现样式,iPhone只能全屏呈现。
B.UIModalPresentationPageSheet,它的宽度是固定的768点,在iPad竖屏情况下则全屏呈现。
C.UIModalPresentationFormSheet,它的是固定的540x620点,无论是横屏还是竖屏情况下呈现尺寸都不会变化。
D.UIModalPresentationCurrentContext,它与父视图控制器有相同的呈现方式。
3. iOS单元测试框架有哪些()
A.OCUnit
B.GHUnit
C.OCMock
D.NSXML
4. NSURLConnectionDelegate协议中的方法有哪些()
A.connection:didReceiveData:
B.connection:didFailWithError:
C.initWithRequest:delegate:
D.connectionDidFinishLoading:
5. NSURLRequest的构造函数有()
A.+ requestWithURL:
B.–initWithURL:
C.+ requestWithURL:cachePolicy:timeoutInterval:
D.–initWithURL:cachePolicy:timeoutInterval:
6. iOS应用导航模式有哪些()
A.平铺导航模式
B.标签导航模式
C.树形结构导航模式
D.模态视图
7. 使用genstring工具可以扫描的宏是有哪些()
A.CFCopyLocalizedString
B.CFCopyLocalizedStringFromTable
C.CFCopyLocalizedStringFromTableInBundle
D.CFCopyLocalizedStringWithDefaultValue
E.NSLocalizedString
F.NSLocalizedStringFromTable
G.NSLocalizedStringFromTableInBundle
H.NSLocalizedStringWithDefaultValue
8. 在UIViewController类中与模态相关方法有哪些()
A.presentViewController:animated:completion:
B.dismissViewControllerAnimated:completion:
C.addChildViewController:
D.removeFromParentViewController
9. iOS中导航设计模式有几种()
A.平铺导航
B.标签导航
C.树形导航
D.模态视图导航
10. NSXML框架中核心的是NSXMLParser和它的委托协议NSXMLParserDelegate,NSXMLParserDelegate常用方法有哪些()
A.parserDidStartDocument
B.parser:foundCharacters
C.parser:didStartElement:namespaceURI:qualifiedName:attributes
D.parser:didEndElement:namespaceURI:qualifiedName
E.parserDidEndDocument
简单题:
1.RunLoop是什什么?
2.ViewController⽣生命周期
3.怎样防⽣止反编译?
4.谈谈你对多线程开发的理理解?ios中有⽣几种实现多线程的⽣方法?
5.进程和线程的区别?同步异步的区别?并⽣和并发的区别?。