`
icrwen
  • 浏览: 266494 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

ios面试题收集

 
阅读更多

objective-c学习网页

http://www.otierney.net/objective-c.html

 

http://mobile.tutsplus.com/tutorials/iphone/learn-objective-c-day-1/

 

 

面试了几轮了,总结下面试中会被经常提问到的问题:

 

 

1.iPad开发与iPhone开发有什么不同?

 

答:开发iPad和iPhone应用使用的是相同的SDK,它们之间的区别主要体现在设备硬件和UI操作上。(1)设备硬件:由于iPad不具备电话功能,iPad1也没有相机,所以相关的特性如电话、SMS等无法使用。(2)UI操作:由于iPad屏幕大小为9.7英寸,而iPhone的屏幕是3.5英寸,这就决定了两者操作方式的不同。有些控件,如UIPopoverController, UISliptViewController 只能在iPad中使用,而不能在iPhone中使用;而且当需要presentModalViewController时,Window presentation style 只对iPad有效;除此之外,iPad产品开发中还需针对iPad大屏幕考虑加入多指手势以增加用户体验。

 

 

2.Objective-C与C、C+++之间的联系和区别?

答:Objective-C和C++都是C的面向对象的超集。

Object与C++的区别主要点:Objective-C是完全动态的,支持在运行时动态类型决议(dynamic typing),动态绑定(dynamic binding)以及动态装载(dynamic loading);而C++是部分动态的,编译时静态绑定,通过嵌入类(多重继承)和虚函数(虚表)来模拟实现。
Objective-C 在语言层次上支持动态消息转发,其消息发送语法为 [object function]; 而且C++ 为 object->function()。 两者的语义也不同,在 Objective-C 里是说发送消息到一个对象上,至于这个对象能不能响应消息以及是响应还是转发消息都不会 crash; 而在 C++ 里是说对象进行了某个操作,如果对象没有这个操作的话,要么编译会报错(静态绑定),要么程序会 crash 掉的(动态绑定)。

另可以参考:(罗朝辉Blog)http://www.cppblog.com/kesalin/archive/2010/12/26/compare_objective_c_and_c_plus_plus.html

 

 

3.#include与#import的区别;#import与@class的区别。

 

#import指令是Object-C针对#include的改进版本,#import确保引用的文件只会被引用一次,这样你就不会陷入递归包含的问题中。

#import与@class二者的区别在于:

  1. #import会链入该头文件的全部信息,包括实体变量和方法等;而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑。
  2. 在头文件中, 一般只需要知道被引用的类的名称就可以了。 不需要知道其内部的实体变量和方法,所以在头文件中一般使用@class来声明这个名称是类的名称。 而在实现类里面,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。
  3. 在编译效率方面考虑,如果你有100个头文件都#import了同一个头文件,或者这些文件是依次引用的,如A–>B, B–>C, C–>D这样的引用关系。当最开始的那个头文件有变化的话,后面所有引用它的类都需要重新编译,如果你的类有很多的话,这将耗费大量的时间。而是用@class则不会。
  4. 如果有循环依赖关系,如:A–>B, B–>A这样的相互依赖关系,如果使用#import来相互包含,那么就会出现编译错误,如果使用@class在两个类的头文件中相互声明,则不会有编译错误出现。所以,一般来说,@class是放在interface中的,只是为了在interface中引用这个类,把这个类作为一个类型来用的。 在实现这个接口的实现类中,如果需要引用这个类的实体变量或者方法之类的,还是需要import在@class中声明的类进来.

 

 

Project菜单->Options...->Version Info当中选中Include version information in project下面就可以自己配置版本号了.

 

分享到:
评论

相关推荐

    iOS面试题收集,用于准备面试,复习面试题~_面试题都是套路_iOSFace2Face.zip

    iOS面试题收集,用于准备面试,复习面试题~_面试题都是套路_iOSFace2Face

    iOS面试题合集

    ### iOS面试题合集知识点详解 #### 一、iOS中的锁机制 - **知识点概述**:iOS开发过程中,锁机制是实现多线程同步的重要手段之一。常用的锁机制包括互斥锁(`@synchronized`)、读写锁、NSLock、NSRecursiveLock等...

    2019iOS面试题大全

    《2019iOS面试题大全》是针对iOS开发者准备的一份面试资料,其中收集了超过100道的iOS面试题目,这些题目覆盖了面试时可能涉及的所有重要知识点。以下将对这些知识点进行详细说明: 1. iOS基础知识点 iOS开发者...

    iOS面试题2019年度总结188题(下).pdf

    根据提供的文档内容,我们可以整理出一系列与iOS开发相关的面试题及关键知识点。下面将对这些题目进行逐个解析,并提供详细的解释。 ### 第88题:`autorelease`、`retain`、`copy`、`assign`的区别是什么? - **`...

    100家企业iOS面试题(下)

    根据给定的信息,我们可以整理出一系列与iOS开发相关的面试题目及关键知识点,下面将逐一进行详细解析。 ### 题目解析 #### 题目88:什么是自动释放(autorelease)? - **知识点**: - **自动释放机制**:在...

    史上最全的iOS面试题及答案

    ### iOS面试核心知识点详解 #### 一、多线程与并发技术 - **NSOperation与GCD的基础原理**: - **NSOperation**是苹果官方提供的面向对象的并发框架,支持依赖关系、优先级和取消操作等功能。它可以作为...

    2018iOS一份高级面试题

    ### 面试题113:iOS 开发中常用的调试工具有哪些? 1. **Instruments**:性能分析工具,可以检测内存泄漏、CPU 使用率等问题。 2. **Xcode Debugger**:强大的调试工具,支持设置断点、变量观察等功能。 3. **NSLog...

    iOS面试题集合(BAT及各大中小型公司)1

    iOS面试题集合主要涵盖了许多iOS开发中的核心概念和技术,这些题目可以帮助求职者准备面试,同时也能促进开发者自身的技能提升。以下是一些关键知识点的详细解释: 1. **Cell重用原理**:UITableView或...

    ios开发面试题

    ### iOS开发面试题详解 #### 一、Objective-C与Java/C++的区别 1. **语法差异**:Objective-C 是一种面向对象的编程语言,它基于C语言并加入了面向对象的功能,使得它可以支持类和对象的概念。Java也是一种面向...

    收集百度、阿里等100家企业面试题合集

    本合集包含了百度、阿里巴巴等知名企业的100多道面试题目,主要聚焦于iOS开发领域。根据内容,可以提炼出以下知识点: 1. Swift与Objective-C语言:Swift是苹果公司推出的编程语言,其语法简洁,安全性高。...

    毕业设计-阿里字节 一套高效的iOS面试题解答.zip

    这里为你收集整理了关于毕业设计、课程设计可参考借鉴的资料一份,质量非常高,如果你投入时间去研究几天相信肯定对你有很大的帮助。到时候你会回来感谢我的。 本资源是经过本地编译测试、可打开、可运行的项目、...

    leetcode题库-iOS-Interview-Questions:收集整理iOS笔试面试题

    面试问题列表 iOS 笔试题库 知识类 基础知识 keyWindow和window的区别 assign copy retain区别 HTTP的数据传输 动态绑定 subclass category protocol extension 区别 单例的实现 performSelector:withObject:方法的...

    iOS面试 面试必备神器

    ### iOS面试必备知识点详解 #### 一、Objective-C语言的基本特点 **Objective-C**作为**C**语言的一个超集,保留了C语言的所有特性,并在此基础上增加了面向对象(OO)的功能。具体而言: 1. **面向对象特性**:...

    iOS开发杂货铺 面试题+考试试卷+懒人开发tips.zip

    "iOS开发杂货铺 面试题+考试试卷+懒人开发tips.zip"这个压缩包文件显然为学习和进阶iOS开发提供了一套丰富的资源。下面我们将详细探讨其中可能包含的知识点,并给出深入的解释。 首先,"面试题"部分通常涵盖iOS开发...

    移动应用开发常见面试题.pdf

    ### 移动应用开发常见面试题解析 #### 1. 移动应用开发的流程和技术栈 移动应用开发流程通常包括需求分析、设计、编码、测试、发布与维护等几个阶段。具体步骤如下: - **需求分析**:明确应用的目标用户、主要...

    APP测试技术面试题库.docx

    状态中,Activity 的生命周期主要由以下几个关键回调方法构成: 1. onCreate():当 Activity 首次创建时调用,用于初始化 ...面试时展示自己对这些领域的理解和实践经验,以及问题解决能力,将有助于提升面试成功率。

    收集的几百道ios笔试题目

    收集的几百道ios笔试题目,网上能找到的基本都搜集进来了,可以参考下

Global site tag (gtag.js) - Google Analytics