-
什么是 Extension
Extension在语法上和Category非常相似,可实际上却又不一样。在语法上,Extension更像是一个没有名字的Category。在class名称后面直接加上一个空的括号()就是Extension,而在Extension中定义的方法需要在原来的class的impletement中实现。形如下: …
-
什么是 Category
不用继承父类,就能直接对该类添加新的方法,或者重写原有的方法。在
OC中,通过Category能够更加深入地去理解,每个类有哪些方法。Category之所以能够直接为类添加防啊,是通过runtime来实现的,runtime提供了一个叫做class_addMethod的方法。在Swift中的Extension,和Category有类似的特性。 …
-
启示录(一)
本周三晚上,有幸能够约到一位资深的商业顾问(简称翔哥)与我们进行视频聊天,为我们这些菜鸟答疑解惑,备感荣幸。短短的一个小时内,让我收获颇丰,深感肩上担子的沉重,同时也让我激动不已。交流的内容主要分为四个部分:
人才储备、自身影响力、盈利模式、合伙人机制。 …
-
ASO 是什么
最近,个人团队项目《过客》新版本上线了,但是项目的排名总是被压着,一只无法顺利升到第二。起初,过客的评分比第二名的评分高很多,但是仍旧无法超越它。试过通过发动周围的朋友来帮助我们增加评论数来提高排名。效果是有的,成功地从第三名爬升到第二名。可是,好景不长,只一天的工夫又被反超了,难道这是千年老三的命么?之后,我和创始人探讨了这个问题,他也很苦恼,同时给我抛出了新的名词 ASO,是这个玩意儿惹的祸。既然知道了问题的根源,那就着手解决问题吧,大致了解一下什么是 ASO。 …
-
Objective-C Class & Object 是什么
Objective-C是基于 C 发展而来的,在 C 的基础上添加了面向对象的概念。 在Objective-C的程序中,可以调用 C 的 API。如果将 .m 文件的后缀改成 .mm,程序内还能混用C++的语法,那就变成了Objective-C++。Objective-C程序在编译的时候,编译器会首先将程序编程 C 语言然后再接着编译。所有 OC 的class会变成 C 的structure(结构体) ,所有的method(包括block)会变成 C 的function。接着,在执行的时候,runtime会建立起function(method) 和structure(class) 之间对应的关系。总的来说,一个对象到底有多少个方法,是在 runtime 决定的。 …
-
Selector为何是Objective-C的重中之重
什么是 selector
selector是用一段字符串来表示对象的某个函数。从专业的角度来说的话,selector就是Objective-C的virtual table中指向实际执行函数指针的一个 c 字符串。由于函数可以用字符串来表示,那么selector可以看成是一个可以传递的参数。 …
-
关于 Cell 的重用机制
最近遇到一个问题:
UICollectionView下面嵌套UITableView,初始化后只拖动其中一个tableView再拖动collectionView,会发现其他tableView的contentOffSet也发生了变化。虽然第一时间是想到了可能是cell重用导致的问题,但是解决这个问题花费了挺多时间。因此,写下这篇文章为自己重新梳理一下对重用机制的理解。 …
-
对于产品的一些思考和想法(一)
添加成就系统的目的
提高用户粘性,增加用户在使用 app 时候的乐趣和成就感。社交软件不仅仅是人与人之间的交流,更是一场潜在的竞争。让用户使用 app 的时候,收获了一份认同感和自豪感。成就的获取会让界面发生些许改变,将每个用户进行差异化,拥有个性化的界面效果,凸显了用户自身的个性和价值。 …
-
排序(三)—— 选择排序
直接选择排序的基本思想
每次从待排序的数据元素集合中选取关键字最小的数据元素并将它与原始数据元素集合中的第一个数据元素交换位置;然后从不包括第一个位置上数据元素的集合中选取关键字最小的数据元素并将它与原始数据元素集合中的第二个数据元素交换位置;如此重复,直到数据元素集合中只剩下一个数据元素为止。 …
-
排序(二)—— 希尔排序
希尔排序的基本思想
把待排序的数据元素分成若干个小组,对同一小组内的数据元素用直接插入排序;小组的个数逐次缩小;当完成了所有数据元素都在一个组内的排序后,排序过程结束。希尔排序又称做缩小增量排序。 …