第一,如何确定一个方法方法名称

删除减号,加,删除返回值,删除参数类型,删除参数,剩下的就是的方法名



秒,id,能够用assign,copy,retain,依据须要使用



第三,autorelease 在什么时候释放?

在碰到autoreleasepool的时候释放(能够把好几个同样的变量放几个不同的池里)



第四,协议的方法默认是@required



第五,字典集合的特点?

字典是以键值对形式的保存元素

仅仅能存储对象,不能存储基本数据类型



第六,怎样定义一个类?

类的接口部分包括实例变量,属性,和方法

能够把声明和实现都放到.h文件中

一对文件(Person.h Person.m)能够定义多个类

类比較抽象,对象比較详细



第七,什么是类目?

类目能够为没有源码的类,加入方法

类目中的方法和原类中的方法级别一样,



第八,重写用继承把父类方法拿到子类重写



第九,什么是对象?

对象是类的实例,如美国总统奥巴马

第十,属性的属性,

详细请点击下面链接

OC 属性的属性

第十一,不要在set方法内部自己调自己,会陷入死循环





第十二,可变字符串与不可变字符串的差别

NSMutableString * str = [[NSMutableString alloc]initWithFormat:@“123”];

NSLog(@“str = %p”,str);

[str appendFormat:@“456”];

NSLog(@“str = %p”,str);

上面两次打印的地址是一样的



第十三,一个字典的key是唯一的,所以字典具有排重的功能,打印字典的时候,左边是key,右边是value



第十四,在类方法中不能使用实例变量



第十五,dealloc的注意事项(有系统自己主动调用)

开ARC不能写[super dealloc]的方法

OC不能重载(方法名一样,參数不一样),仅仅能重写,



第十六,单例方法仅仅是为了得到唯一的实例,方法中通常不带參数

单例相当于全局变量,不能释放,

比方用户登录,把用户信息写在单例里面



第十七,初始法作用是,为变量赋初值

第十八,@package

@package(框架级别)作用域介于私有和公开之间,仅仅要处于同一个框架中就能够直接通过变量名訪问.

第十九,队列先进先出,栈先进后出



第二十,动态绑定

NSString * testObject = [[NSData alloc]init]

编译时是NSString类型 (不检測)

执行时是NSData类型   (检測)

此处比較粗略,详细OC的动态特性请点击以下链接

深入Objective-C的动态特性

第二十一,block改动外部变量时,用__block修饰

第二十二,delegate或者protocol申请属性的时候为什么用assign而不是retain?

协议的声明,用assign属性,避免了循环引用,欲知详情请点击以下.

delegate或者protocol申请属性的时候为什么用assign而不是retain

ios中经常使用的遍历运算方法



遍历的目的是获取集合中的某个对象或运行某个操作,所以能满足这个条件的方法都能够作为备选:

经典for循环

for in

makeObjectsPerformSelector

kvc集合运算符

enumerateObjectsUsingBlock

enumerateObjectsWithOptions(NSEnumerationConcurrent)

dispatch_apply



第二十四,属性是方法不是变量  category里面就是方法不会加入变量



第二十五,看到遍历构造器,要想到autoreleasepool  ,有时候便利构造器常常会出现内存泄露的错误





第二十六,协议是多个类分享的一个方法列表,在协议中所列出的方法没有对应的实现,有其它人来实现

协议的property声明用assign特性,由于要防止对象和其它代理对象之间互相引用,导致无法释放内存





第二十七,类目,延展,协议,继承的差别

类目:类目能够在不获悉,不改变原来代码的情况下往里面加入新的方法,仅仅能加入,不能删除原有方法,可是无法加入实例变量



延展:延展能够同一时候加入实例变量和方法,并且加入的方法必须实现,能够视为一个私有的类目



协议:协议是多个类共享的一个方法列表,在协议中所列出的方法没有对应的实现



继承:不但能够加入实例变量和方法,也能够重写原有类的方法



第二十八,当autorelease没有autoreleasepool 

由于便利构造器产生的对象假设没有autoreleasepool 的话是无法释放的,所以当循环数值过大时产生的对象会越来越多并且使用过的对象无法释放内存占用越来越多,严重影响性能所以要在for循环正在使用atutoreleasepool,这释放内存以避免内存泄漏.

版权声明:本文博主原创文章,博客,未经同意不得转载。

iOS 面试题:OC标题的基本概念<延续>的更多相关文章

  1. iOS 面试题:OC基本概念题

    1.什么是类和对象? 类是一组具有同样特征和功能的事物的抽象 对象描写叙述了一个物体的特征和行为实现 类是对象的抽象 对象是类的实例 2.OC中定义类,创建对象,使用对象. OC中定义类分为接口部分, ...

  2. iOS谋职之OC面试题

    iOS谋职之OC面试题 iOS求职之OC面试题 IOS求职之OC面试题 1.Objective-C的类可以多重继承么?可以采用多个协议么? 答:不可以多重继承,可以采用多个协议. 2.#import和 ...

  3. 最全的iOS面试题及答案-转载

    1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承:可以实现多个接口,通过实现 ...

  4. iOS面试题及答案2015.6.7

    iOS面试题及答案     1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承 ...

  5. iOS面试题大全-点亮你iOS技能树

    所有的内容大部分来自于网络的搜集,所以我不是一个创造者,而是一个搬运工.我尽量把题目,尤其是参考答案的出处列明.若有任何疑问,建议,意见,请联系我. 第一部分面试题来源于iOS-Developer-I ...

  6. ios 面试题 经典(比较全) 根据重点总结

    史上最全的iOS面试题及答案 1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encodin ...

  7. iOS之面试题:腾讯三次面试以及参考思路

    使用了第三方库, 有看他们是怎么实现的吗? 例:SD.YY.AFN.MJ等! <1>.SD为例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...

  8. ios面试题1

    iOS面试题   1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSS ...

  9. iOS 面试题 总结

    #include <iostream> using namespace std; int main () { char p[]={'a','b','c'}, q[]="abc&q ...

随机推荐

  1. Winform通用模块之流水号生成

    打算接下来的时间里把自己觉得用起来还比较好用的通用模块,在这里向大家介绍一下,如果你有更好的想法时,也希望你不吝指点. 1.数据库表及存储过程 在介绍这个通用流水号生成的模块前,我们先来看一下其相关的 ...

  2. SE 2014年4月5日

    背景需求: 缺省情况下,Level-1路由器只将去往其它区域的报文发送到最近的Level-1-2路由器. 路由渗透使Level-1-2路由器将Level-2区域的路由信息发布到Level-1区域. 4 ...

  3. C#按字节长度截取字符串

    产生这个问题的原因是将Substring方法将双字节的汉字当成一个字节的字符(UCS2字符)处理了,导致长度变短. 两个扩展方法按字节长度截取字符串 /// <summary> /// 根 ...

  4. cocos2d-x快乐的做让人快乐的游戏3:cocos-2d 3.x中的物理世界

    Cocos2d-x 3.0+ 中全新的封装的物理引擎给了开发人员最大的便捷,你不用再繁琐与各种物理引擎的细节,全然的封装让开发人员能够更快更好的将物理引擎的机制加入�到自己的游戏中,简化的设计是从2. ...

  5. Knockout获取数组元素索引的2种方法,在MVC中实现

    原文:Knockout获取数组元素索引的2种方法,在MVC中实现 在遍历数组.集合的时候,通常要获取元素的索引,本篇体验使用Knockout获取索引的2种方法. 假设有这样的一个模型: namespa ...

  6. mysql sqlserver Oracle字符串连接

    mysql 例mysql> select CONCAT('My', 'S', 'QL'); sqlserver select name+'aa' from student; oracle sel ...

  7. Linux系统部署规范v1.0

    Linux系统部署规范v1.0 目的: 1.尽可能减少线上操作: 2.尽可能实现自动化部署: 3.尽可能减少安装服务和启动的服务: 4.尽可能使用安全协议提供服务: 5.尽可能让业务系统单一: 6.尽 ...

  8. Windows phone 8 学习笔记(8) 定位地图导航

    原文:Windows phone 8 学习笔记(8) 定位地图导航 Windows phone 8 已经不使用自家的bing地图,新地图控件可以指定制图模式.视图等.bing地图的定位误差比较大,在模 ...

  9. mongodb之java CRUD 简单操作

    我下载的是 mongo-2.8.0.jar — Version 2.8.0 打开mongo shell -- 新建数据库test --( use test) 打开eclipse新建工程,把junit, ...

  10. coco2dx c++ HTTP实现

    coco2dx c++ HTTP实现 达到的结果如下面的 iPhone截图 android 日志截图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdnBp ...