1.Category支持添加属性与成员变量吗
不支持
2.iOS7之后, 蓝牙的围栏功能
所谓iBeacons,就是一种使用蓝牙低能耗进行微定位的技术,它允许iOS设备使用蓝牙4.0获取位置数据。也就是说,配备iBeacons技术的iOS设备就相当于位置数据的接收方和发送方,在蓝牙时代里进行着数据的互联。
iBeacon的出现让地理定位能够更加精确——从几百米的精度提高到了一米甚至半米。这个精细度非常高的地理围栏,终于可以让很多的实际物体都有条件具有了定义自己地理位置标识的能力,例如一张桌子、一把椅子,都可以有自己的地理坐标
3.说说Cell重用原理
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = [NSString stringWithFormat:@"Cell"];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
//config the cell
return cell;
}
这里就涉及了TableView的重用机制,为了做到显示和数据分离,IOS tableView的实现并且不是为每个数据项创建一个tableCell。而是只创建屏幕可显示最大个数的cell,然后重复使用这些cell,对cell做单独的显示配置,来达到既不影响显示效果,又能充分节约内容的目的。下面简要分析一下它的实现原理。
查看UITableView头文件,会找到NSMutableArray* visiableCells,和NSMutableDictnery* reusableTableCells两个结构。visiableCells内保存当前显示的cells,reusableTableCells保存可重用的cells。
比如:有100条数据,iPhone一屏最多显示10个cell。程序最开始显示TableView的情况是:
2. 向下拖动tableView,当cell1完全移出屏幕,并且cell11(它也是alloc出来的,原因同上)完全显示出来的时候。cell11加入到visiableCells,cell1移出visiableCells,cell1加入到reusableTableCells。
所以整个过程并不难理解,但需要注意正是因为这样的原因:配置Cell的时候一定要注意,对取出的重用的cell做重新赋值,不要遗留老数据。
使用过程中,我注意到,并不是只有拖动超出屏幕的时候才会更新reusableTableCells表,还有:
2. reloadRowsAtIndex,刷新指定的IndexPath。如果调用时reusableTableCells为空,那么cellForRowAtIndexPath调用后,是新创建cell,新的cell加入到visiableCells。老的cell移出visiableCells,加入到reusableTableCells。于是,之后的刷新就有cell做reuse了。
4.MVC是否了解?介绍下使用情况。
模型会把任何数据的变更通知控制器,然后控制器更新视图数据。视图对象通知控制器用户的操作,控制器要么根据需要来更新模型,要么检索任何被请求的数据。
Model:
模型保存应用程序的数据,定义了怎么去操作它。例如在本应用中模型就是Album类。
View:
视图是模型的可视化表示以及用户交互的控件;基本上来说,所有的UIView对象以及它的子类都属于视图。在本应用中AlbumView代表了视图。
Controller:
控制器是一个协调所有工作的中介者(Mediator)。它访问模型中的数据并在视图中展示它们,同时它们还监听事件和根据需要操作数据。你可以猜猜哪个类是控制器吗?它正是:ViewController。
5.MVC里面, View怎么通知到Model
应该是不直接交互的,通过controller
6.了解delegate吗?并介绍
7.如果现在要实现一个下载功能, 你要如何设计。说说每个类具体做什么
- 如果让你设计KVO, 要怎么设计
- 现在你是如何适配的
- 比较下storyboard和全代码
- 如果有1w张图片要在屏幕滚动显示(每张图片满屏), 至少要几个cell, 如何实现循环滚动
- 平时是怎么进行测试的, 内存方面怎么测试
- 平时自己有没有封装过比较复杂的控件
- 平时如何实现网络请求, 一般返回的数据是什么格式, 如何解析..
- 如何实现类似 “Find My iPhone” 这样功能
- autorelease 和 @autoreleasepool区别
- unsafe_unretained , weak, assign 区别
- 在block里面, 对数组执行添加操作, 这个数组需要声明成 __block吗
- 在block里面, 对NSInteger进行修改, 这个NSInteger是否需要声明成__blcok
- NSThread, NSOperation, GCD区别
- runtime什么时候用
- 通知和KVO区别
- 深度遍历和广度遍历使用场景
腾讯_微信事业部:
- 常用的设计模式
- 如何保证软件质量, 怎么分析Crash日志
- 谈谈你觉得最重要的一个项目
- 你的个人主页是怎么写的
- 假如我是一名初学者, 你会向我推荐哪些第三方库
- 使用了第三方库, 有看他们是怎么实现的吗
- 有没有看过大型项目的源码
- 强连通量算法
- 最短路径算法
- 排序算法
- 25个人, 每5人1个跑道, 最少经过几次赛跑, 得到前3名
- 求两个整数的最大公约数
- 微信用户都是双向的好友,a是b的好友,那么b一定是a的。给定一个用户列表,有些用户是好友,有些不是,请判断,这些用户是否可以划分为两组,每组内的用 户,互相都不是好友。如果能,请给出这个划分。
相关推荐
问题的积累和解决,一些难点设计到引用,和少见的问题
java开发工作两年遇到的技术问题以及查找到的解决方案还有一些积累,涉及前端技术,android开发,java后台以及数据库sql优化,session共享,单点登录,kafka入门,websocket,线程安全等。
//1)判断是否是闰年 //2)特定类型的字符串拆解 //3)计算时间差值 //4)//float转换成CString 完美的解决了Float类型不精确的问题,以及后缀有许多零; 都是我在平时的工作中积累的,希望对你有所帮助!
在基础问题没有得以解决之前盲目强调所谓的“管理”只可能作一些表面文章,甚至适得其反。 当然,能解决问题的办法并不唯一,本文介绍的方案具有深厚的底蕴,是基于Rational Software专注软件工程领域二十多年所...
本文件是本人在使用C++/JS/jQuery语言过程中一些重要知识点的积累和个人心得总结,文中会对一个问题给出多种解决方法,使开阔思路,灵活运用。 注:本文件还将继续完善,由于积累不太多,以后还将会根据开发语言做出...
随着器件工作频率越来越高,高速PCB设计所面临的信号完整性等问题成为传统设计的一个瓶颈,工程师在设计出完整的解决方案上面临越来越大的挑战。尽管有关的高速仿真工具和互连工具可以帮助设计师解决部分难题,但...
基于layui,结合自身项目中遇到的问题还有社区中积累的一些经验生成的旨在尽量满足通用性的前提下更加的面向应用,包括一些bug修复、功能拓展,同时如果经过检验是比较好的修改,还可以给layui发起PR。 如何使用 ...
本文档内容均来自自己学习整理,以及部分参考一些作者在WWW.IBM.com ...其中部分图例涉及到一些项目,在此不回答任何相关问题,相关图只作为例子参考说明。 此学习版只用作个人学习参考,不能作为商业运用,违者自负
在 Oracle 几年的学习中,, 做了很多的实验, 也遇到了很多的问题,在这个过程中,积累了一些学习文档。 也更新到了 blog 上。 因为太多,不便于查阅。 根据自己对 Oracle 的理解,把这些 blog 进行了分类, 并...
在 Oracle 几年的学习中,, 做了很多的实验, 也遇到了很多的问题,在这个过程中,积累了一些学习文档。 也更新到了 blog 上。 因为太多,不便于查阅。 根据自己对 Oracle 的理解,把这些 blog 进行了分类, 并进行...
一些关于本人以前遇到的问题,希望对大家多多帮助^_^
本人在小程序开发过程中遇到很多问题,依赖开源学到了很多,打算回馈一下,把自己在开发过程中遇到的一些问题总结下来,也欢迎大家一起交流共同进:male_sign:步 列表 最后 如果在开发过程中遇到什么棘手的难题也欢迎...
这是一套前端主流vue的面试笔试题,适用于求职人员面试前的准备或者我们平时的积累巩固,希望能对你有所帮助
更严重的是内存溢出与数据库锁表在系统开发和单元测试阶段并不容易被发现,当系统正式上线一般时间后,操作的并发量上来了,数据也积累了一些,系统就容易出现内存溢出或是锁表的现象,而此时系统又不能随意停机或...
有关XP系统的一些常见问题以及解决方案,还有一些常用的命令,这些都是我平时的积累
在 Oracle 几年的学习中 做了很多的实验 也遇到了很多的问题 在这个过程中 积累了一些学习文档 也更新到了 blog 上 因为太多 不便于查阅 根据自己对 Oracle 的理解 把这些 blog 进行了分类 并进行一些整理方便...
在 Oracle 几年的学习中 做了很多的实验 也遇到了很多的问题 在这个过程中 积累了一些学习文档 也更新到了 blog 上 因为太多 不便于查阅 根据自己对 Oracle 的理解 把这些 blog 进行了分类 并进行一些整理方便自己...
QtWebKit开发过程中遇到的一些小问题记录
提取json文件中的值 import json import os li = [] # 数据集列表 def load_data(filepath): # 遍历filepath下所有文件,包括子目录,路径的最后要加斜杆 files = os.listdir(filepath) for fi in files: ...
巩固算法思维: 练习题中的一些问题需要学习者设计算法来解决,这有助于培养他们的算法思维和问题求解能力。 学习调试技巧: 在实际编写代码的过程中,学习者可能会遇到错误和bug。通过调试这些代码,他们可以学习...