技术博客
文章平均质量分 67
yake_099
这个作者很懒,什么都没留下…
展开
-
iOS百度地图的基本使用
百度地图的基本使用原创 2015-01-09 13:45:30 · 1121 阅读 · 0 评论 -
Swift:什么时候使用结构体和类
Swift:什么时候使用结构体和类发布于 2015 年 8 月 14 日世界上对swift持续不断的讨论话题中有一个就是什么时候使用结构体什么时候使用类。我想我今天要贡献一些自己的想法。值 VS 引用答案其实很简单:当你需要值语义(所谓值语义是一个对象被系统标准的复制方式复制后,与被复制的对象之间毫无关系,可以彼此独立改变互不影响)的时候使用结构体,当你需要引用语义(所谓值语义是一个对象被系统标准的翻译 2015-08-14 16:57:04 · 2087 阅读 · 0 评论 -
多线程学习笔记-01
多线程概念NSThread:基本使用 现成状态 资源抢夺 互斥锁&原子属性 线程间通讯GCD:队列&任务 GCD常用代码&队列的选择 其他功能(延时,一次性执行,分组)NSOperation:简单使用 其他功能(最大并发数,队列的暂停&继续,任务的依赖关系) 网络图像加载实现(无沙盒缓存,沙盒缓存,SDWebImage实现原理)多线程基础什么是进程?进程是指系统中正在运行的一个应用程序每原创 2015-09-07 17:27:04 · 489 阅读 · 0 评论 -
Swift中的集合类数据结构
假设你有一个需要处理许多数据的应用。你会把收据放在哪儿?你怎么样高效地组织并处理数据呢?如果你的项目只处理一个数字,你把它存在一个变量中。如果有两个数字你就用两个变量。 如果有1000个数字,10,000个字符串或者终极模因库呢(能马上找到一个完美的模因不是很好吗)?在那种情况下,你将会需要一种基本的集合类数据结构。幸运的是,这篇教程就是关于那个主题的。下面是这篇教程的构成:你将会复习什么是数据翻译 2015-09-15 08:27:54 · 2266 阅读 · 0 评论 -
identifierForVendor
@property(nonatomic, readonly, strong, nullable) NSUUID *identifierForVendorDescription:An alphanumeric string that uniquely identifies a device to the app’s vendor. (read-only)The value of this proper翻译 2015-11-06 14:27:30 · 1167 阅读 · 0 评论 -
estimatedRowHeight 与 self sizing cells
estimatedRowHeight 与 self sizing cellsestimatedRowHeight为什么要引入estimatedRowHeight呢?顾名思义就是预估高度。在预估高度之前,与高度相关的属性及方法比较常用的有以下两个: * rowHeight:这个属性适合用于拥有固定高度的tableview,这种方式比较高效,滚动时没有任何高度计算,可以得到较好的滚动体验。 *原创 2016-09-19 12:59:14 · 1420 阅读 · 0 评论 -
self-sizing-in-UICollectionView
给出最接近的预估大小设置estimatedItemSize,UICollectionView需要拿这个值去设置一个初始的contentSize,所以给一个最为接近的值,ios10中提供了一个UICollectionViewFlowLayoutAutomaticSize的常量,这个值可以在cell不断加载的过程中调整预估大小,使contentsize的大小越来越接近实际大小。设置好cell的约束与UI原创 2016-09-27 08:47:35 · 1171 阅读 · 0 评论 -
Injection for Xcode
工作原理injection通过分析上次的build日志来得出资源文件是如何被编译的。在这个分析结果的基础上进行再次编译,并将再次编译的结果包裹到一个bundle中,然后使用动态加载器将这个bundle注入到应用当中。至此应用中已经有了某个类的两个版本,一个原始版本一个来自bundle中的已修改版本。接着,被修改的版本被swizzled到原始的类中并发挥作用。这种特性适用于OS X和iOS的模拟器以及原创 2016-11-29 14:55:42 · 1297 阅读 · 0 评论 -
selector 与 动态绑定
selector什么是 selector当你要执行一个对象的方法时,一个selector就是用来选择这个方法的名字的,或者说资源文件被编译时方法的唯一标识。一个selector本身什么也做不了。它只是简单地标明一个方法。唯一使得selector方法名字和普通字符串不同的是,编译器能够确保selector方法名是唯一的。当与runtime结合使用的时候,selector就很有用了,它就像一个拥有特定名翻译 2017-04-22 19:41:04 · 427 阅读 · 0 评论 -
深入理解Tagged Pointer
为了节省内存和提高执行效率,苹果提出了Tagged Pointer的概念。对于64位程序,引入Tagged Pointer后,相关逻辑能减少一半的内存占用,以及3倍的访问速度提升,100倍的创建、销毁速度提升。本文从Tagged Pointer试图解决的问题入手,带领读者理解Tagged Pointer的实现细节和优势,最后指出了使用时的注意事项。转载 2015-08-13 13:46:26 · 684 阅读 · 0 评论 -
Runtime学习笔记
1.什么是运行时(Runtime)?1> Runtime System* 所有的iOS程序的幕后支撑着都是运行时系统* iOS程序的方法调用都是要靠运行时系统来支持的2> Runtime Library* 一套苹果提供的纯C语言的库(API)* 运行时库的作用a)能为一个类动态添加成员变量、动态添加方法、动态修改方法的实现b)能动态交换2个方法的实现(可以给系统自带的方法替换实现)原创 2015-08-27 15:24:25 · 602 阅读 · 0 评论 -
iOS推送过程详解
闲得无聊集成了一下信鸽推送,首先信鸽推送的文档里面有很详细的关于生成推送证书的教程,以后再要生成证书记不住过程的看它就可以了。即使你不用第三方,证书生成的过程是一样的。推送证书生成详细过程注:需要强调一点的是,我在生成开发证书和发布证书的过程中犯了一个错误,由于两个成证书都需要生成cerSigningRequest(CSR)文件,因此我的发布和开发证书都使用了同一个,于是就怎么着都推送不成功,重新生原创 2015-08-12 16:24:36 · 1003 阅读 · 0 评论 -
计算缓存大小和清除缓存
计算缓存大小及清除缓存原创 2015-02-03 14:33:44 · 569 阅读 · 0 评论 -
SDWebImage基本使用
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *MyIdentifier = @"MyIdentifier"; UITableViewCell *cell = [tableView de翻译 2015-02-10 13:40:45 · 562 阅读 · 0 评论 -
The Swift Programming Language - Closures
Closures“Closures are self-contained blocks of functionality that can be passed around and used in your code. Closures in Swift are similar to blocks in C and Objective-C and to lambdas in other p翻译 2015-06-01 10:02:01 · 1043 阅读 · 0 评论 -
MKMapKit
1.创建地图: _mapView = [[MKMapView alloc] initWithFrame:self.view.bounds]; _mapView.delegate = self; _mapView.userInteractionEnabled = YES; _mapView.centerCoordinate = CLLocationCoordinat原创 2015-06-08 16:50:52 · 597 阅读 · 0 评论 -
使用富文本在lable上展示不同颜色的文字,自定义label高度,自定义行间距
废话不多说,直接上代码第一段代码主要是创建富文本,并给文字赋值给label,调整文字的颜色字体行间距等- (void)createLabel{ UILabel * textLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 250, 200, 20)]; textLabel.backgroundColor = [UI原创 2015-06-15 13:45:48 · 1499 阅读 · 0 评论 -
@property @synthesize @dynamic
摘自:微博@iOS程序犭袁@property 的本质是什么?ivar、getter、setter 是如何生成并添加到这个类中的@property 的本质是什么? @property = ivar + getter + setter;下面解释下: “属性” (property)有两大概念:ivar(实例变量)、存取方法(access method = getter + setter)。“属转载 2015-08-26 10:57:20 · 1247 阅读 · 0 评论 -
Apple Push Notification Service(苹果推送服务)
https://developer.apple.com/library/IOS/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.htmlApple Push Notification Service苹果推送服务Apple Push翻译 2015-02-04 09:44:38 · 7653 阅读 · 0 评论 -
隐藏导航栏时添加在self.view上的Tableview位置产生20个单位的误差
也许你已经发现了,当你隐藏了页面中的导航栏,并且在self.view上添加了一个tableview时,你的tableview的位置会向下偏20个单位,并且你怎么找都找不到问题所在。。。因为这就不是你的问题。你会发现在ios7.1及以上的系统下都会存在这个bug(7.1版本以下我没有试过,可以自己试试),解决办法就是不要直接把你的tableview加在self.view上,而是先要在self.view原创 2015-07-30 14:27:19 · 4138 阅读 · 1 评论 -
GCD学习笔记
简介1.什么是GCCD 全称是Grand Central Dispatch 纯C语言,提供了非常多强大的函数2.GCD的优势 * GCD是苹果为多核的并行运算提出的解决方案 * GCD会自动利用更多的CPU内核(比如双核、四核) * GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程) * 程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码3.GCD中有两个核心原创 2015-09-14 16:51:31 · 536 阅读 · 0 评论