热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

李洪强iOS经典面试题153补充

李洪强iOS经典面试题153-补充补充有空就来解决几个问题,已经懒癌晚期没救了。。。UML统一建模语言(UML,UnifiedModelingLanguage)是面向对象

李洪强iOS经典面试题153- 补充
 

补充

有空就来解决几个问题,已经懒癌晚期没救了。。。

UML

  • 统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模语言。UML因其简单、统一的特点,而且能表达软件设计中的动态和静态信息,目前已成为可视化建模语言的工业标准。在软件无线电系统的开发过程中,统一建模语言可以在整个设计周期中使用,帮助设计者缩短设计时间,减少改进的成本,使软硬件分割最优。
  • 用例图 静态图 行为图 交互图 实现图

如果设计一个交易平台,流程如下:A用户在平台P发现B用户有东西出售,P平台的业务逻辑是需要A先付款到P得中间账户,等到A确认收货后,P向B付款,你能尝试某种表示方式来让程序员,产品设计,美术设计明白这个流程么?

从1-n个五序列的数字中排序的算法有哪些,简单代码实现一个并写出时间复杂度

有一个6克和21克的砝码,怎样称量三次将420克的糖分成270克和150克

一桌子人,每个人额头上都贴有标签,绿色和红色,绿色至少1个,大家都能看到别人头上的标签,看不到自己头上的标签,然后开始闭眼游戏,大家觉得自己头上是绿色标签就拍一下手掌,第一次闭眼没人拍掌,第二次,第三次也同样没有人拍掌,第四次有一个人拍掌了,请问绿色标签有几张

是否使用过coreImage和coreText?如果使用过,说说你的体验

  • coreImage是IOS5中新加入的一个Objective-c的框架,提供了强大高效的图像处理功能,用来对基于像素的图像进行操作与分析。

    写一个单项链表逆序

什么是OpenGL?具体使用

开启一个其他线程来计算1+1 并且把结果用主线程显示在label上更新UI

ffmpeg框架

静态链接库

init和initwithobject区别(语法)?

什么是OOP?

为NSString扩展一个方法,方法能判断字符串是否是Url地址(即判断字符串是否以“http://”),放回BOOL值类型

写一个iphone程序,有2屏,可以通过滑动切换,第二屏有一个webview,读取本地的html文件,Html文件中会加载一个本地xml文件,获取xml文件中的数据内容并显示。(可选:html中加载的js文件)

.如何避免json解析出现内存泄露,内存泄露后怎么解决

什么情况下会发生内存泄漏和内存溢出?

有方法查看当前系统内存使用情况吗?

  • 静态分析 :通过静态分析我们可以最初步的了解到代码的一些不规范的地方或者是存在的内存泄漏,这是我们第一步对内存泄漏的检测。当然有一些警告并不是我们关心的可以略过。
  • 通过instruments来检查内存泄漏
    这个方法能粗略的定位我们在哪里发生了内存泄漏。方法是完成一个循环操作,如果内存增长为0就证明我们程序在该次循环操作中不存在内存泄漏,如果内存增长不为0那证明有可能存在内存泄漏,当然具体问题需要具体分析。
  • 代码测试内存泄漏
    在做这项工作之前我们要注意一下,在dealloc的方法中我们是否已经释放了该对象所拥有的所有对象。观察对象的生成和销毁是否配对。准确的说就是init(创建对象的方法)和dealloc是否会被成对触发(简单说来就是走一次创建对象就有走一次dealloc该对象)。
    下面是自己遇到的一些比较隐秘的造成内存泄漏的情况:
    1.两个对象互相拥有:也就是说对象a里面retain/addSubview了b对象,b对象同时也retain/addSubView了a对象。注意:delegate不要用retain属性,要用assign属性也会导致互相拥有。
    2.有时候需要用removeFromSuperView来释放:具体说明,也许我的a对象拥有一个b对象,b对象add到了c对象上,而在我们的设计中b对象的生命周期应该和a对象相同;这时候只一句[b release]/self.b = nil是不能把b对象释放掉的(一般情况下release会使其retainCount-1,[super dealloc]会再次将所有subView的retainCount-1,而b并不是a的subView,所有最后的一次-1没有了);所以我们需要在之前加上[b removeFromSuperView]。

写一个贪吃蛇的算法

请写一个类似于NSMutableArray的类,可以添加,删除,以及如何以最快的速度查找某个元素?

给一个数字,判断从左读和从右读是否是一致的?例如12321和4444

给一个数组[1、3、2、4、8]排序后[1、2、3、4、8]?

怎么用下面的类?北京品科艺科技有限公司

  • NSuserDefault
  • NSMange Object Context
  • NSPredict

    怎么从xib文件加载成UIview?

OAuth2.0授权的过程,是否用过1.0?

id是编译时还是运行时

蓝牙

、CFNetwork基于啥?

逻辑运算跟位运算的区别?

三维动画的旋转的原理?底层怎么实现?点与点 用距阵变换实现的。

NSFileManager/NSFileHandle为什么不用文件加载而用数据库?

uikit基于什么?

默写二分查找算法?

设计一个忽略大小写比较两个字符串的算法?

怎么过滤一段既有字符串又有数字的,让他只剩数字?

支付功能。微信支付 支付宝支付

友盟分享 报错

假设某一个生物每B年繁殖一次,一次繁殖N个只,寿命是M年,编写程序起初有X只生物,求T年之后生物的总数是多少?

=有个不相同的数,从中随机取N个数,要求N个数互不相同。

//(已经有随机函数int getRand(int min,int max)表示获取从最小值到最大值的随机整数)
{
return min + (max – min) *rand()/RAND_MAX;
}

什么是消息推送?

已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前

在iPhone中怎么写入C++程序,详细写下来

远程推送;本地消息和原地推送的区别

苹果怎么实现安全机制

  • 设备控制和保护:支持用户从一系列密码设计策略中根据安全需求来进行选择,包括超时设定、密码长度以及密码更新周期等

  • 数据保护。256位AES硬件加密算法。远程信息擦除,本地信息擦除

  • 安全网络通信,*** SSL WAP/WAP2认证方式接入wifi

  • 安全的iOS平台。运行时保护-沙盒机制,应用之间不能相互访问,系统资源与用户程序隔离。强制前面。安全认证框架

    极光推送原理(第三方框架),怎么用的?遇到什么问题?怎么解决的?

    微信的附近功能怎么实现的?

    怎么实现第三方登陆

autolayout?sizeclass

HealthKit是什么?

2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据,这是苹果计划为其计算和移动软件推出的一系列新功能的一部分该移动应用平台被命名为“Healthkit ”,苹果高管告诉开发者,它可以整合iPhone或iPad上其它健康应用收集的数据,如血压和体重等。

HealthKit框架提供了一个结构,应用可以使用它来分享健康和健身数据。HealthKit管理从不同来源获得的数据,并根据用户的偏好设置,自动将不同来源的所有数据合并起来。应用还可以获取每个来源的原始数据,然后执行自己的数据合并。

HealthKit也可以直接与健康和健身设备一起工作。在iOS8.0中,系统可以自动将兼容的低功耗蓝牙心率仪的数据直接保存在
HealthKit存储中。如果有M7运动协处理器,系统还可以自动导入计步数据。其他的设备和数据源必须要有配套的应用才可以获取数据并保存在HealthKit中。

HealthKit另外提供了一个应用来帮助管理用户的健康数据。健康应用为用户展示HealthKit的数据。用户可以使用健康应用来查看、添加、删除或者管理其全部的健康和健身数据。用户还可以编辑每种数据类型的分享权限。

HealthKit和健康应用在iPad上都不可用。HealthKit框架不能用于应用扩展。

HomeKit是什么?

HomeKit,是苹果2014年发布的智能家居平台。HomeKit库是用来沟通和控制家庭自动化配件的,这些家庭自动化配件都支持苹果的HomeKit Accessory Protocol。HomeKit应用程序可让用户发现兼容配件并配置它们。用户可以创建一些action来控制智能配件(例如恒温或者光线强弱),对其进行分组,并且可以通过Siri触发。HomeKit对象被存储在用户iOS设备的数据库中,并且通过iCloud还可以同步到其他iOS设备。HomeKit支持远程访问智能配件,并支持多个用户设备和多个用户。HomeKit 还对用户的安全和隐私做了处理。

iCloud是什么包含了哪些技术与服务?

iCloud是苹果公司所提供的云端服务,2011年6月6日苹果公司执行长乔布斯(Steve Jobs)抱病主持全球开发者大会(WWDC),正式发表云端服务iCloud, iOS 5 以及 OS X Lion.其中iCloud的功能是存储内容,包括购买的音乐、应用、电子书等推送到所有设备,iCloud是一系列服务的技术封装,使用者可以免费储存5GB资料。可以备份存放照片、音乐、通讯录、短信、文档等内容,在你需要的时候以无线方式将他们推送到你所有的设备上。自行执行。轻松自如、运作流畅,它就是这么管用。可与亲朋好友共享体验的完整平台。它不仅安全,而且可提供丰富的社交体验,从任何计算机或设备均可随时方便地进行访问。iCloud上所提供的应用程序包括办公生产率、开发工具、媒体和窗口小部件等。随着时间的推移,还将通过易于使用的市场空间和应用程序开发工具箱提供范围更广的应用程序。

服务:应用软件、电子书与备份、Documents in the Cloud、Photo Stream(照片流)、iTunes Match、Mobile Me

CoreData:中多线程中处理大量数据同步时的操作

CoreData:是CoCoa中处理数据绑定数据的关键特性,提供完整的对象持久化存储方案。如果你使用sqlite3厌倦了敲打sql语句,CoreData正解决了你这烦恼。sqlite3是CoreData处理的数据类型之一,当你将CoreData和sqlite的结合起来使用的话,你将能开发出强大的数据库应用。

CoreData与多线程操作:

为了在查询数据的时候不让界面停滞,使用多线程是不可避免,一般我们会用thread,串行线程或者并发线程。coredata与多线程交互的时候,每个线程都必须拥有一个manager context对象,一般有两种方式:

1.每一个线程使用私有的manager context,共享一个 persistent store coordinator

2.每个线程使用私有的manager context和私有的persistent store coordinator

对于这两种方式,我们比较推荐使用第一钟方式,因为使用第二种方式的会消耗我们更多的内存,所以推荐使用第一种。 注意:CoreData里面还带有一个通知NSManagedObjectContextDidSaveNotification,主要监NSManagedObjectContext的数据是否改变,并合并数据改变到相应context

请解释一下Handoff是什么,并简述它是如何实现iOS、Mac/网页应用互通的 开发指南

Handoff英译是用手推开某人,在计算机领域是CDMA术语,表示切换的意思。OSX 10.10 Yosemite新增了一个酷炫的功能“HandOff”,打开这个功能之后,用户可以在Mac上对iPad和iPhone进行操作,比如能够编写iPhone上未完成的邮件,并且可以在Mac上打开iPhone的热点等等,Mac的Hand Off功能只能识别Mac周围的iPhone手机。

Handoff的核心思想就是:用户在一个应用里所做的任何操作都包含着一个activity,一个activity可以和一个特定用户的多台设备关联起来。用行话来说,抽象出这种activity的类叫做NSUserActivity,大部分时间我们都会和这个类打交道。需要一提的是,所有的设备都必须靠近(靠近是指两台设备的蓝牙能够彼此连接),这样Handoff才能正常工作。而且还有两个先决条件得满足:第一个条件是得有一个能正常使用的iCloud账号,而且用户应该在每台准备使用Handoff的设备上登陆这个iCloud账号。事实上,当在不同的设备上切换时,为了保证正在进行的activity不被中断而且被关联到同一个用户,应该尽可能地在所有设备上使用同一个iCloud账号。第二个条件是当两个或两个以上不同的应用想要在同一个用户activity进行Handoff的操作时需要具备的,在这种情况下,所有涉及到的应用必须使用Xcode里相同的团队标识(TeamID)签名。

当编写一个支持Handoff的应用时,需要关注以下三个交互事件:

1.为将在另一台设备上继续做的事创建一个新的用户activity。

2.当需要时,用新的数据更新已有的用户activity。

3.把一个用户activity传递到另一台设备。

需要注意的是Handoff相关的测试只能在真实设备上进行,所以你得有至少两台运行着iOS 8.0或以上系统的设备。不管是多台iPhone,多台iPad或者同时拥有iPhone和iPad都可以。


推荐阅读
  • nil用来给对象赋值(Objective-C中的任何对象都属于id类型),NULL则给任何指针赋值,NULL和nil不能互换,nil用于类指针赋值(在Objective-C中类是一 ... [详细]
  • iOS逆向工程(三):利用Cycript调试App
    利用Cycript调试App一、Cycript是什么?Cycript是一种脚本语言,是Ob ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 本文介绍了Java集合库的使用方法,包括如何方便地重复使用集合以及下溯造型的应用。通过使用集合库,可以方便地取用各种集合,并将其插入到自己的程序中。为了使集合能够重复使用,Java提供了一种通用类型,即Object类型。通过添加指向集合的对象句柄,可以实现对集合的重复使用。然而,由于集合只能容纳Object类型,当向集合中添加对象句柄时,会丢失其身份或标识信息。为了恢复其本来面貌,可以使用下溯造型。本文还介绍了Java 1.2集合库的特点和优势。 ... [详细]
  • Myappcrashedandthecodeisthefollowing:我的应用程序崩溃,代码如下:elseif(){CGDetailVie ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了iOS开发--漫谈内存管理相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文介绍了如何在方法参数中指定一个对象的协议,以及如何调用符合该协议的方法。以一个具体的示例说明了如何在方法参数中指定一个UIView子类对象,并且该对象需要符合PixelUI协议,同时方法需要能够访问该对象的属性。 ... [详细]
author-avatar
mobiledu2502914997
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有