iOS 面试题:OC标题的基本概念<延续>
第一,如何确定一个方法方法名称
删除减号,加,删除返回值,删除参数类型,删除参数,剩下的就是的方法名
秒,id,能够用assign,copy,retain,依据须要使用
第三,autorelease 在什么时候释放?
在碰到autoreleasepool的时候释放(能够把好几个同样的变量放几个不同的池里)
第四,协议的方法默认是@required
第五,字典集合的特点?
字典是以键值对形式的保存元素
仅仅能存储对象,不能存储基本数据类型
第六,怎样定义一个类?
类的接口部分包括实例变量,属性,和方法
能够把声明和实现都放到.h文件中
一对文件(Person.h Person.m)能够定义多个类
类比較抽象,对象比較详细
第七,什么是类目?
类目能够为没有源码的类,加入方法
类目中的方法和原类中的方法级别一样,
第八,重写用继承把父类方法拿到子类重写
第九,什么是对象?
对象是类的实例,如美国总统奥巴马
第十,属性的属性,
详细请点击下面链接
第十一,不要在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的动态特性请点击以下链接
第二十一,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标题的基本概念<延续>的更多相关文章
- iOS 面试题:OC基本概念题
1.什么是类和对象? 类是一组具有同样特征和功能的事物的抽象 对象描写叙述了一个物体的特征和行为实现 类是对象的抽象 对象是类的实例 2.OC中定义类,创建对象,使用对象. OC中定义类分为接口部分, ...
- iOS谋职之OC面试题
iOS谋职之OC面试题 iOS求职之OC面试题 IOS求职之OC面试题 1.Objective-C的类可以多重继承么?可以采用多个协议么? 答:不可以多重继承,可以采用多个协议. 2.#import和 ...
- 最全的iOS面试题及答案-转载
1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承:可以实现多个接口,通过实现 ...
- iOS面试题及答案2015.6.7
iOS面试题及答案 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承 ...
- iOS面试题大全-点亮你iOS技能树
所有的内容大部分来自于网络的搜集,所以我不是一个创造者,而是一个搬运工.我尽量把题目,尤其是参考答案的出处列明.若有任何疑问,建议,意见,请联系我. 第一部分面试题来源于iOS-Developer-I ...
- ios 面试题 经典(比较全) 根据重点总结
史上最全的iOS面试题及答案 1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encodin ...
- 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 ...
- ios面试题1
iOS面试题 1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSS ...
- iOS 面试题 总结
#include <iostream> using namespace std; int main () { char p[]={'a','b','c'}, q[]="abc&q ...
随机推荐
- 开源 免费 java CMS - FreeCMS1.9 会员组管理
项目地址:http://www.freeteam.cn/ 会员组管理 会员组分为两种,一级是经验会员组,一种是特殊会员组. 经验会员组的会员会依据经验自己主动变更,特殊会员组不会自己主动变更,须要管理 ...
- c++ 对象指针参数和对象引用参数02
对象指针作为函数参数和对象引用作为函数参数都比对象作为函数参数要用的更为普遍 传对象指针和传对象引用作为实参,那么实参在函数里发生了变话,那么相应的对象本身也会发生变化,二传递对象本身作为实参的话,实 ...
- 用java读写properties文件的代码
package com.LY; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.F ...
- 【前端攻略】:玩转图片Base64编码(转)
引言 图片处理在前端工作中可谓占据了很重要的一壁江山.而图片的Base64编码可能相对一些人而言比较陌生,本文不是从纯技术的角度去讨论图片的base64编码.标题略大,不过只是希望通过一些浅显的论述, ...
- Uva11464 开关问题
给一个n×n的01矩阵,你的任务是将尽量少的0变成1,是的每个元素的上下左右的位置(如果存在的话)的之和均为偶数.1<=n<=15. 如果暴力整个矩阵,那么时间复杂度是O(2^(n*n)) ...
- 不root的情况下 查看App的数据表
一直以来查看sqlite的数据库都须要root才干查看,可是公司的好多測试机root起来比較麻烦~~~ 近期刚好项目上线,略闲, 于是决定写一个libraryproject便于以后调试代码 关键代码例 ...
- 学习笔记 Android.mk 搜索自己主动
最近一直Android.mk这是什么一个令人沮丧的夜晚,点击此处记录. ios你担心更多.不管那么多.xcode自己解决. 文本工具:MACVIM(文本编辑工具 很有用 你可以清楚地分辨tab 和Sp ...
- WEB网站性能优化
最近做了一个WEB现场.幸运的是,一开始.但后来越来越慢,特别是在调试模式,,这肯定是我们的代码有问题.但是即使业务不是非常复杂的也非常慢,我们就想当然的觉得我们的代码没问题,可最后证明还是我们的代码 ...
- 【解决】/usr/bin/ld: cannot find -lc
现象:运行gcc静态编译程序时报错: /usr/bin/ld: cannot find -lc collect2: ld returned 1 exit statusmake: *** [gcc_dr ...
- 【夸QT在十五】ctkPluginFrameWork插件系统Windows编译器
采用ctkPluginFramework作为一个插件系统开发框架确实有很多优点. 有些车站最近收到的一封信,每个人都想用ctkPluginFramework但我不知道如何建立,本教程对谈ctkPlug ...