1.当一个空指针(nil pointer)调用了一个方法会发生什么?

安然无恙 —— 这是oc自带的消息机制,nil也能发送消息,而不会报错

2.为什么retainCount绝对不能用在发布的代码中?请给出两个相对独立的解释。

a,因为retainCount不靠谱,不能真实的反映一个对象的引用计数

b,使用 alloc release等东西,一一对应,不需要retainCount

c,app已然推荐ARC,连release都不用了,更何况retainCount

-retainCount受到时间和framework的影响太大,不能准确反映内存的引用计数

-retainCount很容易迷惑人,采取规范的内存管理才是王道

3.查找或者解决内存泄露的处理过程推荐

利用Xcode的工具,

Analyze来看各种提示信息 (你可以在building setting里面开启各种烦人的提示)
Profile跟进一些具体的内存的点

跟进具体的代码,来看一些关键的点 block、delegate等

使用instruments作为动态分析的手段,还有Xcode的静态内存分析

4.自动回收池(autorelease pool)在程序运行时的运作过程。

xcode为开发者写的代码外层包了一层NSAutoreleasePool。建立一个回收池堆栈(Stack)每次对象发送autorelease消息时,对象的引用计数并不真正变化,而是向pool中添加一条记录,记下对象的这种要求。最后当pool发送drain或release消息时,池中的所有对象的这种要求一一被执行。顺便说下使用场景:-应用不是基于"Application Kit",像"Command-line tool",因为它并没有内置的"autorelease pools"的支持。-创建线程,你必需在线程开始时创建一个'"Autorelease Pool"实例。反之,会造成内存池泄漏。一个循环内创建了太多的临时对象,你应该为他们创建一个"Autorelease Pool"对象,并在下次循环之前销毁它们。

5.处理属性申明的时候,原子(atomic)跟 非原子(non-atomic)属性有什么区别?

是否线程安全

atomic是原子的,多线程的时候,可以防止写操作完毕前被读取

事关多线程,原子(atomic)可以说是线程安全的,也就是在读取这个属性的变量的时候,会进行一些额外的操作(比如锁),所以说,atomic会比较安全但是比较耗时。

6.遍历一个NSArray和一个NSSet,哪一个更快?

其实意思是问,遍历一个链表和哈希表,哪个更快?

如果你只需要保存和遍历一些数据,或者元素个数比较小,就选择NSArray, 即使需要查找的功能,也不要用NSSet.

只有在元素个数很大,或者需要保证数据唯一性的情况下,才使用NSSet.

7。copy跟retain有什么区别?

一个是复制内容,一个引用计数+1,(NSString比较特殊,两个的功能几乎一样)需要注意的是,自定义的类需要重写一个方法以实现自己的深复制:

-(id)copyWithZone:(NSZone *)Zone{

grandSuper *scCopy;

scCopy = [[[self class] allocWithZone:Zone]init];

return scCopy;

}

8.frames跟bounds有哪些区别?

frame相对于superView而言
bounds相对于自身的origin而言,一般是(0,0),设备朝向变化,bounds会变

9.执行如下的代码会发生什么情况?

Ball *ball = [[[[Ball alloc] init] autorelease] autorelease];

崩溃,因为重复释放,在自动回收池下一次进行回收时崩溃

10.app的崩溃率是多少?线上app出现问题如何解决:据说行业平均水平是 0.5%。分母是启动次数 (擦,这个我怎么知道,写得程序好,就崩得少,写的烂就崩的多呗,什么鸟崩溃率),刚得到一个 小的 方法:崩溃率的追踪用腾讯的bugly,解决用JSPatch。  好像有个 叫蒲公英的 网站 也可以 。

11.IDE(Integrated Development Environment,集成开发环境)。其缩写形式IDE同时也代指“电子集成驱动器”。IDE集成开发环境(简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器编译器、调试器和图形用户界面工具。该程序可以独立运行,也可以和其它程序并用。例如,BASIC语言在微软办公软件中可以使用,可以在微软Word文档中编写WordBasic程序。IDE为用户使用Visual Basic、Java和PowerBuilder等现代编程语言提供了方便。IDE多被用于开发HTML应用软件

12.回滚

回滚(Rollback)指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。回滚包括程序回滚和数据回滚等类型。

删除由一个或多个部分完成的事务执行的更新。为在应用程序、数据库或系统错误后还原数据库的完整性,需要使用回滚。

对于  iOS  系统的回滚   就是  从高版本的系统 刷机到低版本的系统的意思

待解决的:

在C语言中,你如何能用尽可能短的时间来倒转一个字符串?

解释代码签名(code signing)是如何运作的。

Objective-C中的posing指的是什么?

列举标准Xcode版本中的6个工具。

oc语言的缺点是什么

如何检测 一个 app在手机所占内存的 大小  ,查看 CPU的消耗情况,如何查看app消耗流量和电量的情况

iOS 细节 问题的更多相关文章

  1. iOS开发笔记7:Text、UI交互细节、两个动画效果等

    Text主要总结UILabel.UITextField.UITextView.UIMenuController以及UIWebView/WKWebView相关的一些问题. UI细节主要总结界面交互开发中 ...

  2. iOS推送服务细节回顾

    iOS推送服务细节回顾 之前在做推送功能时候,就总结过一系列证书的制作,OC代码实现和服务器搭建等经验.又过了一段时间了,前前后后对推送服务做了多次的完善和优化,有iOS客户端的,还有本地服务器端的. ...

  3. 一起来给iOS 11找bug: 苹果还是乔布斯时代的细节控吗?

    众所周知,前几天苹果在位于苹果公园的Steve Jobs剧院召开了一年一度的新品发布会,正式揭幕了全屏的iPhoneX, 随后又把iOS 11推送给了测试员(Beta Tester)(正式版将于几周后 ...

  4. iOS应用发布中的一些细节

    iOS应用发布中的一些细节 前言 这几天最大的新闻我想就是巴黎恐怖袭击了,诶,博主每年跨年都那么虔诚地许下“希望世界和平”的愿望,想不到每年都无法实现,维护世界和平这么难,博主真是有心无力啊,其实芸芸 ...

  5. iOS开发笔记18:一些编译、开发调试、打包的细节整理

    1.以链库的方式引用第三方库 一些特殊场景可能会要求使用链库的方式使用第三方库,大体设置如下: ①Other Linker Flags里进行设置,格式为-l+库名称 ②Libray Search Pa ...

  6. iOS 11 APP 设计中的几个 UI 设计细节

    Apple 官网看了 iOS 11 的介绍,发现有不少的更新哦,比如控制中心.Siri.Live Photo 等等,总体来说都有很多不错的体验,不过本文不介绍功能,只说视觉界面. 在 iOS 11 的 ...

  7. iOS之应用发布中的一些细节

    Bundle identifier Xcode中 Target -> General中的bundle identifier ; info.plist中的Bundle identifier; 证书 ...

  8. iOS $299刀企业证书申请的过程以及细节补充(二)

    上篇博客写的过程中,没有图,也没有相应的说明.这次再补充一些信息: 1.从 https://developer.apple.com/ios/enroll/dunsLookupForm.action 申 ...

  9. iOS $299刀企业证书申请的过程以及细节补充

    最近申请了iOS的 299刀企业证书,相关过程有些问题,分享出来,以便后来人参考. 申请的过程我主要参考了别人以前的文章,链接如下: 1.https://developer.apple.com/cn/ ...

随机推荐

  1. android3.2以上切屏禁止onCreate()

    一般切屏禁止onCreate()方法需要将activity加上属性: android:configChanges=”orientation|keyboardHidden” 但是在3.2以上就不起作用了 ...

  2. Qt学习之路(34): 国际化(下)

      原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://devbean.blog.51cto.com/448512/245063 上次 ...

  3. apache kafka技术分享系列(目录索引)--转载

    原文地址:http://blog.csdn.net/lizhitao/article/details/39499283 kafka开发与管理: 1)apache kafka消息服务 2)kafak安装 ...

  4. Java基础知识强化之IO流笔记26:FileInputStream / FileOutputStream 复制mp4视频的案例

    1.  需求:把D:\\English.mp4 复制到当前项目目录下copy.mp4 代码示例: package com.himi.filecopy; import java.io.FileInput ...

  5. apache、mod_jk负载均衡与tomcat集群

    最近需要搭建apache和tomcat的集群,实现静态网站直接通过apache访问,动态网站转交给tomcat处理,实现负载均衡和tomcat集群配置. apache安装 wget http://ap ...

  6. 29、Jquery Ajax

    Ajax Asynchronsous Javascript and XML(异步Javascript和XML). Ajax 是一种无需重新加载整个页面的情况下,更新局部页面的技术. 不是指一种单一的技 ...

  7. VS编译出现 HTTP 错误 403.14 - Forbidden 决绝办法

    决绝办法:     运行cmd命令,在控制台面板计入Iis Express目录下.运行提示的的就可以了       appcmd set config /section:system.webServe ...

  8. 数组转换成json

    下面是详细的步骤,也可参考http://blog.csdn.net/wangliqiang1014/article/details/19924727 iOS数组可以转换车json对象,转换代码:NSS ...

  9. html-----004

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 新的博客已经启用,欢迎大家访问(402v.com)

    非常抱歉这个博客已经暂停更新,新的博客已经启用,欢迎大家访问(402v.com)!谢谢支持!