#iOS 开发

在平时的 iOS 开发中使用 Git 时会遇到这样的问题,明明在 .gitignore 文件中添加了 .xcuserstate 忽略,之后每次 push 时文件改动中还是会出现 UserInterfaceState.xcuserstate 文件,下面是解决方法。

最近公司项目中要做一个报表功能,需要用到图表,于是就使用了 Charts 这个框架,这个框架可以说是图表中用的最多的框架了,由于 Charts 只有 Swift 版本,公司项目是用 OC 写的,所以先整理一下 OC 的使用方法,Swift 等以后项目转了在整理。

由于最近公司需要将项目用 Swift 改写,项目中需要大量使用数据库,之前 OC 使用的是 Core DataCore Data 使用起来确实十分的繁琐,故决定在 Swift 中弃用,改用 Realm 数据库,下面将使用方法记录下来方便以后查看。

本文为转载,附上 原文链接

很高兴见到 Objective-C 的老司机对于 Swift 的新鲜语法结构和新思维方式感到如此兴奋。作为开发者,我们应该永远努力拓展我们的技能,并在新的范式出现的时候乐于改变我们的心态。

一个类似的例子就是处理数据结构的时候,拥抱不可变性,尽量使用常量,这是一个很好的建议而且完全应该被采用。另一个例子是把我们的数据模型转换为 Struct(结构体)。这是听起来很美好,但在实际运用中,彻底地使用 Struct 来代替 Class(类),还是给开发者带来很多困难。

不要误会我的意思,用 Struct 作为数据模型确实带来了非常大的好处。 只是这并不是完美的办法。在这篇文章中,我会详细说明一下当你把数据模型从 Class 转换成 Struct 时会遇到的麻烦。

最近在调试的时候发现 Xcode 直接打印 NSArray 数组和 NSDictionary 字典的时候,如果其中有中文,打印出来就变成乱码了,调试起来很不舒服,下面就分享一下解决办法。

UICollectionViewUITableView 的用法非常的相似,但它要更加强大,下面就对于 UICollectionView 的基本用法进行一个汇总,以便之后方便查看。

RAC 指的就是 RactiveCocoa ,是 Github 的一个开源框架,能够帮我们提供大量方便的事件处理方案,让我们更简单粗暴地去处理事件,现在分为 ReactiveObjCReactiveSwift ,两个框架的功能使用相似,由于正好在学习这个然后公司项目是用 OC 写的,所以将 ReactiveObjC 的使用方法记录一下。

在日常的 iOS 开发中,关于多线程使用的较多的就是 Grand Central Dispatch(GCD) 了,GCD 会自动利用更多的 CPU 内核,会自动管理线程的生命周期,总之 GCD 的好处还是非常之多的,下面就对 GCD 的使用进行一个汇总。

SDWebImage 可以用来显示网络图片,但是由于我们公司的后台设置了图片的访问限制,需要在请求图片的路径中添加自定义 Header 请求头,在简单的查询后发现 SDWebImage 已经提供了这个接口能够设置 Header 请求头,下面就分享一下怎么设置。

最近在修改一个网络请求的 bug 时,由于一直请求失败,所以在寻找具体失败原因的时候,了解了一下请求失败的错误返回 NSError ,发现原来可以通过 NSError 中的 code 属性来判断请求失败的具体原因,就在这里记录顺便分享一下。