获得徽章 0
赞了这篇沸点
赞了这篇沸点
Vary——“卡片草稿”和“自动保存”功能的实现和思考
评论
#iOS知识小集#「 数组去重的新姿势 」

当我们需要对一个数组进行去重操作时,通过会初始化一个新数组,遍历旧数组,在遍历过程中,如果新数组中不包含当前的元素,便将元素加入到新数组中去,但其实KVC集合运算符可以valueForKeyPath:方法中使用keyPath符号来执行方法,最简单的就是@distinctUnionOfArrays,他会返回了一个去除重复元素的数组。在图一中,uniqueArray便是oldArray去重后的结果,因为oldArray是一个字符串数组,所以@distinctUnionOfObjects.self里面用到是.self,代表元素本身作为是否重复的key。
展开
知识小集于2019-04-25 12:59发布的图片
2
Swift 踩坑之 Codable 协议
评论
#iOS知识小集#「 URLWithString:relativeToURL: 方法的解释 」

我们在 AFNetworking 中可能注意到过这个方法,平时的开发中也可能会用到。为了后文描述方便,这里把方法参数名写完整:URLWithString:(NSString *)URLString relativeToURL:(NSURL *)baseURL 这个方法的作用是使用 URLString 来生成一个与 baseURL 相关联的完整 URL。我的个人理解是:URLString 描述相对位置,baseURL 确定基地址,二者合起来确定一个绝对的 URL。(当 URLString 自身就是一个完整路径时,baseURL 无效)

此外,AFNetworking 源码中也提醒我们,此处使用的 baseURL 需要带上末尾的斜杠,这样才会按你的期望生成正确的 URL。关于两者的不同情况相结合产生结果的例子,可以参见下面引用的文章,建议配合阅读。
展开
评论
赞了这篇沸点
本文旨在给开发者一个基本的色彩的认识,把一些设计知识带入开发者的世界里,希望开发者们可以从这篇文章中受益。
评论
#iOS知识小集#「 获取UIImage时的时间差异对比 」

对比2组数据,数据由iPhoneX模拟器采集,下面这两组数据不同操作系统可能数据有所差别。整体来说从aseet中获取图片性能更优,在不同设备下 [UIImage imageNamed:inBundle:compatibleWithTraitCollection:] 获取图片可能优于 [UIImage imageNamed:]。希望对你有所启发。知识小集上次发布了一个这方面的文章,可以参考一下。

其它设备采集数据来源于 OPrior to iOS 9, loading images from your b... t.cn。如图1

「 1、从 bundle 中获取图 」

使用imageNamed:获取图,耗时为 81ms; 如图2

「 2、从 asset 中获取图,把上面代码的图片移到asset中 」

a、采用 imageNamed:从asset中获取图片,耗时 3ms:

imageNamed: image:<UIImage: 0x60000012a0d0>, {750, 750}, time=3

b、采用 imageNamed:inBundle:compatibleWithTraitCollection:从asset中获取图片,耗时 13ms:

inBundle: image= <UIImage: 0x6000038bd960>, {750, 750}, time = 13
展开
知识小集于2019-04-22 12:33发布的图片
知识小集于2019-04-22 12:33发布的图片
评论
WKURLSchemeHandler 的能与不能
评论
iOS拾遗—— Assets Catalogs 与 I/O 优化
评论
#iOS知识小集#「 SourceTree 提交信息面板消失了怎么办? 」

今天分享一条关于 SourceTree 的不常见但是在遇到后很实用的 tips。

相信大部分同学使用的 git GUI 工具都是 SourceTree,不知道大家有没有遇到,commit message 面板消失再也出不来的情况。最近某次不知道怎么操作的,选中某个 commit 后,底部始终不显示这条 commit 的详情,用起来很别扭。如图1所示,正常情况应该类似图2。

后来去 SourceTree 官网上搜了一下,发现有同样的情况,解决方案就是在终端运行如下命令

defaults delete com.torusknot.SourceTreeNotMAS "NSSplitView Subview Frames repowindow_LogViewDescSplitter"

然后重启 SourceTree,重启之后你会发现熟悉的 commit 信息面板又回来了!
展开
知识小集于2019-04-19 12:31发布的图片
知识小集于2019-04-19 12:31发布的图片
评论
#iOS知识小集#「 关于Xcode Simulator无法启动的原因 」

前几天为了清理 Xcode 缓存,误删了文件,编译时仍然有一堆模拟器可以选择,但是却无法启动模拟器。

先是 Command + R 后等待一段时间报出超时错误。如图一。

再在应用程序中找到 Xcode,打开包内容,找到 Developer-->Applications-->Simulator,双击后提示磁盘中并没有模拟器设备。如图二。

进入文件夹 ~/Library/Developer/CoreSimulator/Devices,发现目录下是空的,这就是导致模拟器无法启动的原因。

按顺序找到 Xcode-->Window-->Devices and Simulators,点击左下角的【+】添加新的模拟器,完成后再次打开 ~/Library/Developer/CoreSimulator/Devices,会发现目录下有内容,如图三。进入文件夹,打开device.plist,里面就是刚添加的模拟器的设备信息,然后就可以正常运行项目了。
展开
知识小集于2019-04-18 12:39发布的图片
知识小集于2019-04-18 12:39发布的图片
知识小集于2019-04-18 12:39发布的图片
评论
下一页
个人成就
优秀创作者
文章被点赞 4,729
文章被阅读 582,863
掘力值 16,143
收藏集
1
关注标签
6
加入于