常见面试题

  1. 在定义属性的时候,assign和strong分别在什么情况下使用
    assign:修饰简单数据类型,比如int,float等,如果基本数据类型用retain修饰,编译器会报错
    可以参看 http://www.jianshu.com/p/4a1d1921284b
    strong:修饰对象,与retain同义,在引用对象的时候,会retain
  2. 写一个单例,并结合实际谈一谈单例的作用
static Singleton* _instance = nil;  
+(instancetype) shareInstance  
{  
    static dispatch_once_t onceToken ;  
    dispatch_once(&onceToken, ^{  
        _instance = [[self alloc] init] ;  
    }) ;  
    return _instance ;  
}  

很多时候,我们在整个app生命周期中要用到全局对象,以协调系统整体的行为,比如,整个系统可能有很多地方会修改、保存以及获取用户信息,这时就可以用单例模式

  1. ++i和i++的区别
int a = 1, b;
b = a++;
// b == 1 加号在后,就赋值后运算
int c = 1, d;
d = ++c;
// d == 2 加号在前,就赋值前运算
  1. #import<>和#import""的却别,import和include的区别
    <>用于系统文件,""用于自己创建的文件;
    import是include的改良版,会确保文件只引用一次
  2. A界面跳转到B,B跳转到C,C跳转到D,如何跳回B?
NSArray *array = self.navigationController.viewControllers;
int i;
for (i=0; i<array.count; i++) {
    UIViewController *vc = array[i];
    if ([vc isKindOfClass:[B class]]) {
        return;
    }
}
B *b = array[i];
[self.navigationController popToViewController:b animated:YES];
  1. frame和bounds的区别
    bounds的x和y永远是0,frame不一定。因为frame描述的是在父视图中的位置,bounds描述的是相对于自己的位置
  2. UITableView加载数据没有显示,以你的经验来看为什么?
    可能是数据源不对,可能是代理没写对,可能是cell有问题
  3. 写出经常用的多线程的代码
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// 费时操作
dispatch_async(dispatch_get_main_queue(), ^{
 // 刷新UI
    });
        });
  1. 如果从后台数据解析出来数据为空值,要如何避免空值造成的崩溃?
    从后台获取的数据一般会解析到写好的model里边,将服务器数据转化成model的时候,就可以进行防灾处理,一般会将空value替换成默认字符串或者指定类型的数据。如果整个数据都是空的,直接则直接使用默认model,提示用户即可。
  2. 说说iOS开发当中常遇到的崩溃以及如何避免。
    永远不要相信服务器,除了养成良好的编码习惯、风格,及时发现隐患外,还要做好防灾处理。Foundation框架里有很多常用的方法有导致崩溃的潜在危险,我们可以将这些方法替换、拦截,以防止崩溃发生,比如:
  • 通过category给类添加方法用来替换掉原本存在潜在崩溃的方法
  • 利用runtime方法交换技术,将系统方法替换成我们给类添加的新方法
  • 利用异常的捕获来防止程序的崩溃,并且进行相应的处理
  1. OC的特点
  • Object-c仅支持单一父类继承,不支持多重继承
  • 所有对象都是指针的形式
  • Category (分类),功能强大,不用通过继承,直接给库类提供函数或者修改库类中的函数
  • 没有命名空间(缺点)
  • 消息机制 在Objective-C中,你可以对id发送任何消息(id很像void*,但是被严格限制只能使用在对象上),编译器仅会发出“该对象可能无法回应消息”的警告,程序可以通过编译,而实际发生的事则取决于运行期该对象的真正形态,若该对象的确可以回应消息,则依旧运行对应的方法。一个对象收到消息之后,他有三种处理消息的可能手段,第一是回应该消息并运行方法,若无法回应,则可以转发消息给其他对象,若以上两者均无,就要处理无法回应而抛出的例外。只要进行三者之其一,该消息就算完成任务而被丢弃。若对“nil”(空对象指针)发送消息,该消息通常会被忽略,取决于编译器选项可能会抛出例外。
  1. 内存管理与优化
  • 关于内存管理的一篇文章:内存管理
  • 可以通过懒加载来减轻内存浪费:关于懒加载
  • 对象已经被释放后,应将其指针置为空指针(没有指向任何对象的指针,给空指针发送消息不会报错)。
  1. 沙盒:
    Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录
    tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除
    Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除;iTunes在与iPhone同步时,备份所有的Documents和Library文件;iPhone在重启时,会丢弃所有的tmp文件。
  2. Block
    Block
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,907评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,546评论 1 289
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,705评论 0 238
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,624评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,940评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,371评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,672评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,396评论 0 195
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,069评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,350评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,876评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,243评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,847评论 3 231
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,004评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,755评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,378评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,266评论 2 259

推荐阅读更多精彩内容

  • 设计模式是什么? 你知道哪些设计模式,并简要叙述? 设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的...
    Jt_Self阅读 708评论 0 4
  • 1.objective-c常见面试题:1、**OC **语言的基本特点OC 语言是 C 语言的一个超集,只是在 C...
    LZM轮回阅读 943评论 0 3
  • 1.Difference between shallow copy and deep copy? 浅复制和深复制的...
    用心在飞阅读 972评论 0 9
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,036评论 29 470
  • 1. [C#语言基础]请简述拆箱和装箱。 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何...
    胤醚貔貅阅读 4,664评论 1 29