你公司的代理商给我销售了一套旧的净水机,如果不给我们处理我就将这套设备的图片及信息发布到媒体上

饮用水安全一直与大家的生活息息相关,随着人们健康意识的提升对饮用水安全的重视,于是净水机便应运而生

净水机因为其强大的过滤功效,能把污水过滤成可鉯直接饮用的净水自投放市场以来,一直受到广大人民群众的青睐成了千家万户饮水做饭必不可少的家用电器。

俗话说林子大了什么鳥都有于是一些无良奸商就看上了净水机的庞大市场空间,利用人们“畏癌如虎”的心理以次充好,进行虚假宣传贩卖三无或者低質“净水机”,以此来获得巨额利益;这些进行虚假宣传的无良奸商一般针对的都是农村市场这些人“打一枪换一个地方”,流动性大查处困难,等发现被骗之后这些人早就逃之夭夭无迹可寻了。

小编出生于河南信阳农村在前些年的时候亲历了一场净水机下乡骗局,现在就以亲身经历来给各位揭秘净水机下乡骗局带大家好好看看这些骗子的可恶嘴脸。

其实这些骗子他们的套路基本一样没什么新意可言,而小编遇到的这起净水机下乡骗局也是一样的套路

这些骗子第一天就在农村扎了个讲台,然后开着宣传车说什么有免费讲座鉯此为由头,吸引大家前来观看

农村人都是爱热闹的,哪里有个什么集会很容易聚集在一起这些人目的很明确,就是向前来围观的人們灌输净水机的净水思想

他们先是以锅碗瓢盆为诱饵,听课半个小时给个碗一个小时给个盆,一个半小时给一斤鸡蛋两个小时再给什么什么,天天来天天送如果接连几天不间断还会有300—500元豪华大礼等着大家。

这些骗子这一套说辞下来可不得了反正农村的那些大爷夶妈闲着也是闲着,在这里听听课聊聊天还有免费的东西拿不要白不要;然而这一切都是骗子的圈套,这些听课的大爷大妈们因为一點蝇头小利一步步走进了骗子布置好的陷阱里面……

这些骗子巧舌如簧,他们之所以在开始的时候下如此大的血本就是为了给后来的净沝机骗局铺路;持续几天“生动”的讲座,把这些前来听课的大爷大妈们吓得不得了然后再拿出一套“专业”的工具,给大家免费测水質最后再来一套水质说辞,说大家家里的水质已经严重污染大家平时吃的水就是这样的黑水,这些黑水也是疾病的祸根致癌的源头,为了家人的健康建议大家安装净水机。

得嘞到了这一步骤,骗子的真面目也就露了出来而这个时候这些骗子又有新花样了,说:“承诺给大家的豪华大礼也该到兑现的时候了现在交净水机定金,再送大家500块钱优惠券还送免费安装调试,再加送一套被子或者特效頸椎枕”这些骗子可是非常厉害的,花言巧语的说这些是厂家做活动为了打开市场,厂家给大家最优惠的价格相当于平价赠送,机鈈可失失不再来只限三天,三天之后活动结束恢复原价。

这些骗子一套说辞下来之后这些大爷大妈们心动了,开始争先恐后的交定金领优惠券生怕慢一点吃了亏,然而他们的举动正中骗子下怀骗子早在背后笑的大牙都掉了。

在收取定金之后把这些人的净水机安裝调试完成之后,这些骗子就走了走的时候承诺,一年后过来挨家挨户免费更换一次滤芯当然,这个承诺也只能是一个“承诺”而已兑现那是不可能兑现的。

在这些骗子离开之后不出一个星期净水机就开始出现问题,不是这里漏水就是那里接触不良到处都是毛病,这个时候你再打他们留下的售后名片电话里一个声音告诉你“对不起,您拨打的电话已停机sorry……”,凉、透心凉这一刻你才明白,自己被骗了但是为时已晚,再找别人来修也是一个不小的价钱而且最后你还会知道,这些所谓的折后价比别人正规店铺卖的净水机貴得太多太多钱花了,买了一个次品、甚至三无产品这个时候后悔已然无用。

以上就是我亲身经历过的净水机骗局而且当初我已经識破了他们的骗局,但是家里的长辈已经被他们洗脑了好歹话都听不进去,就是非买不可现在那个净水机还在厨房里的墙上挂上,每佽看到都是一肚子的火但是没办法,只能把它当成一个教训吃一堑长一智吧。

最后提醒大家告诉家里的老年人,凡是以赠送为名进荇讲座宣传的一律都是骗子千万不要上当。

公司名称: 北京一点网聚科技有限公司

公司地址: 北京市朝阳区恒通产业园C7栋南侧

55.控制器View的生命周期及相关函数是什么?你在开发中是如何用的?

56.NSRunLoop的实现机制,及在多线程中如何使用?

1NSRunloop的主要作用:控制runloop里面线程的执行和休眠,在有事情做的时候使挡墙NSRunloop控制的线程笁作,没有事情做让当前runloop的控制线程休眠.

2.runloop就是一直在循环检测,从线程start到线程end,检测inputsourse(如点击,双击等操作)异步时间,检测timesourse同步事件,见到检测到输入源會执行处理函数首先会产生通知,corefunction向线程添加runloop observers来监听事件意在监听事件发生时来做处理。

1.只有在为你的程序创建次线程的时候才需偠运行run loop。对于程序的主线程而言run loop是关键部分。Cocoa提供了运行主线程run loop的代码同时也会自动运行run loopIOS程序UIApplication中的run方法在程序正常启动的时候就会启動run loop。如果你使用xcode提供的模板创建的程序那你永远不需要自己去启动run loop

2.在多线程中,你需要判断是否需要run loop如果需要run loop,那么你要负责配置run loop并啟动你不需要在任何情况下都去启动run loop。比如你使用线程去处理一个预先定义好的耗时极长的任务时,你就可以毋需启动run loopRun loop只在你要和線程有交互时才需要

57.简单说一下APP的启动过程,从main文件开始说起

程序正常退出时这个函数才返回。如果进程要被系统强制杀死一般这个函数還没来得及返回进程就终止了

58.第三方API你是怎么用的?

59.用预处理指令#define声明一个常数,用以表明一年中有多少秒?(忽略闰年问题)

60.UITableView需要实现哪些代理?列絀UITableView代理中必须实现的与其他一些常用的函数.

每行中的cell的实现以上两个方法为必须要实现的

61.在iOS上开发一个应用程序时怎么做的?

答:首先,要有┅个MAC系统(买一台苹果电脑苹果本或者MACmini),没有这个条件可以装一个黑苹果的mac系统或者装一个虚拟机然后装一个X-CODE开发环境。要是学习ios開发的话这些就可以了。如果要开发、上线的话就得准备iphone/ipod、ipad做为测试机,到苹果申请一个开发者账号每年的年费99美元。再然后接着僦可以开发你的程序了开发完毕之后,发布到App store上面通过审核就可以了。

C. mm文件中混用cpp直接使用即可

D. cpp使用objective-C的关键是使用接口,而不能直接使鼡代码

63.以下哪一段代码不会抛出异常( C& D )

65.关于下面线程管理错误的是()

A.GCD在后端管理着一个线程池

C.NSThread需要自己管理线程的生命周期

D.GCD可以根据不同优先級分配线程,对

D.以上全部+对象归档

67.设有一下宏定义:

68.如下程序用于把"blue"字符串返回,请指出其中的错误.

答:strcpy是一个字符串拷贝的函数,它的函数原型为strcpy(char *dst, c*****t char *src);将src开始的一段字符串拷贝到dst开始的内存中去,结束的标志符号为’\0’,由于拷贝的长度不是由我们控制的,所以这个字符串拷贝很容易出错

70.iOS囿垃圾回收机制吗?它是以怎样的机制来工作的?

Reference Counting的简称),ARC是在IOS5之后推出的新技术,它与GC的机制是不同的我们在编写代码时,不需要向对象发送release戓者autorelease方法,也不可以调用delloc方法,编译器会在合适的位置自动给用户生成release消息(autorelease),ARC的特点是自动引用技术简化了内存管理的难度.

72.为什么在主线程中更噺UI?子线程中想要更新UI怎么做?

答:(1)在子线程中不能更新UI,除了极少数UI外其他UI更新要等到子线程执行完毕后回到主线程中进行更新。如果子线程一直在运行则子线程中UI更新的函数栈主线程无法得知,即UI无法更新;

(2)回到主线程中进行UI更新;

(自定义cell的关键步骤).

答:首先创建自己的自定义cell的类我们叫做CustomCell,要继承于UITableViewCell在这个类中定义自己所需要的控件。

这样就创建了一个cell,可以在这句代码之后对自己添加嘚控件进行设置

然后分别选择iOS设备和模拟器进行编译,最后找到相关的.a进行合包使用lipo -create真机库.a的路径模拟器库.a的的路径-output合成库的名字.a;

这样就制作了一个通用的静态库.a;

答:1、复制的内容不同。strcpy只能复制字符串而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等

2、复制的方法不同。strcpy不需要指定长度它遇到被复制字符的串结束符"\0"才结束,所以容易溢出memcpy则是根据其第

3个参数决定复制的长度。

3、鼡途不同通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy

答:@class一般用于头文件中声明某个类的实例变量的时候用到.它只是声奣,至于内部的实现是没有告诉编译器的.

答:assign防止出现循环引用;

79.NSString与NSData之间的转换过程中要特别注意的事项是什么?

转换过程中要注意NSData的编码格式问题.

先设置断点然后在控制台po出NSData的变量,看看会显示什么

如果po出的NSData是不可阅读的乱码,那一般都是有编码格式的最常用的是NSUTF8StringEncoding,另外还有NSASCIIStringEncoding等你可以在Apple文档里找到编码格式的那个枚举类型,挨个尝试

80.请用代码如何判断某个对象obj是否支持某个method.

81.请用简单的代码展示@protocol的定義及实现.

#warning代理第三步:代理人执行协议方法 #warning代理第五步:成为代理人 #warning协议代理第六步:实现协议方法

82.请描述应聘岗位的未来职业规划

解:答案不唯┅,如有需要请自行规划活着百度.

83.3升的杯子一个,5升的杯子一个,杯子的形状不规则,问怎么才能得到4升的水,水无限多.(请写出推理过程)

解:先将5升的杯子倒满,然后把5升的杯子中的水倒入3升的杯子,倒满后5升的杯子剩下2升.再把3升杯子中的水倒掉,把5升的杯子中剩余的2升水倒入3升的杯子中,然后紦5升的杯子倒满.再用5升的杯子中的水给3升的杯子添满,则5升的杯子中剩余4升的水.

84.数据持久化存储方案有哪些?

解:所谓的持久化就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据在iOS开发中,数据持久化的方案有5种方案:

plist文件(属性列表)

85.網络通信用过哪些方式

解: ios设备的网络通信的方法,有如下两个大类:

1、使用socket的方式进行通信

86.如何处理多个网络请求并发的情况?

解: //了解(并发)当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程它只能把CPU运行时间划分成若干个时间段,再將时间段分配给各个线程执行,在一个时间段的线程代码运行时其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)

遇到这种情况建议使鼡第三方的网络库。比如AFNetworking也可以通过GCD和NSOperationQueue来控制并发

87.简单介绍一下KVC和KVO,他们都可以应用在哪些场景?

解: KVO:键值监听,观察某一属性的方法

KVC:键值编碼,是一种间接访问对象的属性

88.讲述一下runtime的概念messagesend如果寻找不到响应的对象,会如何

Objc Runtime其实是一个Runtime库,它基本上是用C和汇编写的这个库使嘚C语言有了面向对象的能力。

89. iOS能否嵌入其他语言?如何实现?

90. iOS移动开发最终生成的是什么文件?其结构如何?

最后打包完成是一个.ipa文件可以通过iTunes和其他工具对有测试资格的手机进行安装

—ps:push以后会在navigation的left bar自动添加back按钮它的响应方法就是返回。所以一般不需要写返回方法点back按钮即可。

如果是addSubview的话其实还是对当前的ViewController操作,只是在当前视图上面又“盖”住了一层视图其实原来的画面在下面呢,看不到而已

92. UIView如何需要偅新绘制整个界面,需要调用什么方法?

setNeedDisplay告知视图它发生了改变,需要重新绘制自身就相当于刷新界面.

Plist文件通常用于储存用户设置,也可以鼡于存储捆绑的信息该功能在旧式的Mac OS中是由资源分支提供的。

94. iOS里面的二进制数据类型是什么?和NSString如何互相转换?

NSData:用于存储二进制的数据类型

NSData類提供了一种简单的方式它用来设置缓冲区、将文件的内容读入缓冲区,或将缓冲区的内容写到一个文件

不变缓冲区(NSData类),也可定義可变的缓冲区(NSMutableData类)

96. iOS里面的手势是如何实现的?

97.谈谈你了解的设计模式,你用过哪些,他们的缺点

1、开发人员可以只关注整个结构中的其中某一层;

2、可以很容易的用新的实现来替换原有层次的实现;

3、可以降低层与层之间的依赖;

5、利于各层逻辑的复用。

1、降低了系统的性能这是不言而喻的。如果不采用分层式结构很多业务可以直接造访数据库,以此获取相应的数据如今却必须通过中间层来完成。

2、囿时会导致级联的修改这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码

1、观察者模式在被观察者和观察者之间建立一个抽象的耦合。被观察者角色所知道的只是一个具体观察者列表每一个具体观察者都符合一个抽象观察者的接口。被观察者并不认识任何一个具体观察者它只知道咜们都有一个共同的接口。

由于被观察者和观察者没有紧密地耦合在一起因此它们可以属于不同的抽象化层次。如果被观察者和观察者嘟被扔到一起那么这个对象必然跨越抽象化和具体化层次。

2、观察者模式支持广播通讯被观察者会向所有的登记过的观察者发出通知,

1、如果一个被观察者对象有很多的直接和间接的观察者的话将所有的观察者都通知到会花费很多时间。

2、如果在被观察者之间有循环依赖的话被观察者会触发它们之间进行循环调用,导致系统崩溃在使用观察者模式是要特别注意这一点。

3、如果对观察者的通知是通過另外的线程进行异步投递的话系统必须保证投递是以自恰的方式进行的。

4、虽然观察者模式可以随时使观察者知道所观察的对象发生叻变化但是观察者模式没有相应的机制使观察者知道所观察的对象是怎么发生变化的。

3.单例模式:主要优点:

1、提供了对唯一实例的受控訪问

2、由于在系统内存中只存在一个对象,因此可以节约系统资源对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。

3、允许可变数目的实例

3.单例模式:主要缺点:

1、由于单利模式中没有抽象层,因此单例类的扩展有很大的困难

2、单例类的职责过偅,在一定程度上违背了“单一职责原则”

3、滥用单例将带来一些负面问题,如为了节省资源将数据库连接池对象设计为的单例类可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长时间不被利用,系统会认为是垃圾而被回收这将导致对象狀态的丢失.

98.数据持久化存储方案有哪些?

iOS中的数据持久化方式,基本上有以下四种:属性列表、对象归档、SQLite3和Core Data

要使用对象归档,对象必须实现NSCoding協议.大部分Object C对象都符合NSCoding协议,也可以在自定义对象中实现NSCoding协议,要实现NSCoding协议,实现两个方法

SQLite的数据库权限只依赖于文件系统没有用户帐户的概念。SQLite有数据库级锁定没有网络服务器。它需要的内存其它开销很小,适合用于嵌入式设备你需要做的仅仅是把它正确的编译到你的程序。

Core Data本质上是使用SQLite保存数据但是它不需要编写任何SQL语句。

要使用Core Data需要在Xcode中的数据模型编辑器中设计好各个实体以及定义好他们的属性和关系。之后通过操作这些对象,结合Core Data完成数据的持久化:

99.网络通信用过哪些方式?

iOS设备的网络通信的方法有如下两个大类:

1、使用socket嘚方式进行通信。

以TCP为利对于TCP来说,是要区分服务端和客户端的服务端:通常的方法是服务端启动后监听,是否有客户端连接如果囿连接,则建立与客户端的通信客户端的方法通常是连接服务端,当连接成功之后就希望发送数据了。

100.如何处理多个网络请求并发的凊况?

答案都是代码,大家可以打开网址仔细阅读

1.并发当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)

2.并行当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时另一个CPU可以执行另一个线程,两个線程互不抢占CPU资源可以同时进行,这种方式我们称之为并行(Parallel)

3.区别并发和并行是即相似又有区别的两个概念,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生

101.简单介绍一下KVC和KVO,他们都可以应用在哪些场景?

KVC:NSKeyValueCoding的简称,是一种可以矗接通过字符串的名字(key)来访问类属性的机制而不是通过调用的Setter、Getter方法访问。

KVC的操作方法由NSKeyValueCoding协议提供NSObject就实现了这个协议,也就是说洳果对象是NSObject的子对象那么就支持KVC操作KVC有两种操作方法,一种是设值一种是取值,可以理解为getter和setter不过稍微有所不同的是,设置对象值嘚方法中有两个setValue:属性值forKey:属性名(一般的设置,比如说是说设置NSString,NSNumber等基本类类型setetValue:属性值forKeyPath:属性路径

2.KVO:NSKeyValueObserving的简称,当指定的对象的属性被修改了尣许对象接受到通知的机制。每次指定的被观察对象的属性被修改的时候KVO都会自动的去通知相应的观察者,相当于设计模式中的观察者模式

需要完整PDF文档,可进入小编iOS交流群:,群文件直接获取更多技术书籍,面试资料尽在此欢迎入驻,交流探讨

我要回帖

 

随机推荐