刚刚在线

分享iOS开发技术经验的自媒体网站

iOS开发之如何跳到系统设置里的WiFi界面

之前以为,苹果不支持直接从应用跳到系统设置里的WiFi界面。后来发现,这个小功能是可以实现的,而且实现起来并不麻烦。让我们一起来看看吧!

需求

从应用跳到系统设置里的WiFi界面有这个需求存在吗?答案是肯定的。比如以下两个例子:

在没有网的状态下,你可能想提醒用户去设置界面连接WiFi。如果不能跳到WiFi界面,只能在APP里面做出文字提示。这样很多小白用户可能不会看提示,只会觉得APP没有做好。

还有一种情况,做智能家居的APP,智能硬件设备自带WiFi(局域网)。如果用户没有连接设备的WiFi进入APP时,需要提示用户去设置界面连接WiFi。

以上这两种情况只是举个例子,这个小功能的用处还是很多的,大家可以自行探索。

一组功能丰富的iOS组件:YYKit

项目地址:https://github.com/ibireme/YYKit

中文介绍

YYKit 是一组庞大、功能丰富的 iOS 组件。

为了尽量复用代码,这个项目中的某些组件之间有比较强的依赖关系。为了方便其他开发者使用,我从中拆分出以下独立组件:

  • YYModel — 高性能的 iOS JSON 模型框架。
  • YYCache — 高性能的 iOS 缓存框架。
  • YYImage — 功能强大的 iOS 图像框架。
  • YYWebImage — 高性能的 iOS 异步图像加载框架。
  • YYText — 功能强大的 iOS 富文本框架。
  • YYKeyboardManager — iOS 键盘监听管理工具。
  • YYDispatchQueuePool — iOS 全局并发队列管理工具。
  • YYAsyncLayer — iOS 异步绘制与显示的工具。
  • YYCategories — 功能丰富的 Category 类型工具库。

打造高效率iOS开发实战交流VIP群

大家好,我是李刚。对的,你没有听错,我就是传说中李刚的本人。今天,我决定正式启动iOS开发实战交流VIP付费群!

定位

做什么事情都应该有一个明确的定位,无论是现在工作也好,还是以后创业也罢,定位非常重要。当然,这个iOS开发实战交流VIP群也有一个定位,那就是为广大iOS开发爱好者、iOS开发初学者提供一个技术交流平台,一起提升iOS开发技术。

具体来说:

  1. 技术交流,不定期邀请一些技术牛人,分享开发经验。
  2. 技术问答,有关技术问题大家可以相互帮助回答,我也会邀请一些开发经验在3年以上的朋友,免费为大家解答技术问题。 (我也会参与回答)
  3. 我会把大家问的比较好的问题,整理成文档,共享给大家。算是对技术知识点的一个总结。
  4. 还能交一帮愿意为价值付费的朋友,以后可以资源共享,相互帮助。
  5. 群内不定期免费共享优秀的iOS开发视频教程,项目源码以及一些开发文档。

iOS提交审核:您的 App 正在使用广告标识符 (IDFA)

提交审核也是iOS开发者必备技能之一。关于提交审核的教程数不胜数,不会的童鞋赶紧尝试一下吧!

这篇文章我们来解决一个问题,关于IDFA的:

您的 App 正在使用广告标识符 (IDFA)。您必须先提供关于 IDFA 的使用信息或将其从 App 中移除,然后再上传您的二进制文件。

从14年2月初开始,Apple开始拒绝采集IDFA(identifier for advertising)而未集成任何广告服务的应用进入AppStore。怎么看自己的项目是否采集了IDFA呢?方法很简单,大家去看framework,看看有没有一个framework叫AdSupport.framework。

如果有,那就惨了,上两张图看看:

idfa1

远程推送控制台提示Add “Remote-notification”…解决方案

做推送的童鞋可能会遇到这样的问题,控制台会打印一句话:

You’ve implemented -[ application:didReceiveRemoteNotification:fetchCompletionHandler:], but you still need to add “remote-notification” to the list of your supported UIBackgroundModes in your Info.plist.

解决办法:

error1

月薪3万的程序员都避开了哪些坑

程序员薪水有高有低,有的人一个月可能拿30K、50K,有的人可能只有2K、3K。同样有五年工作经验的程序员,可能一个人每月拿20K,一个拿5K。是什么因素导致了这种差异?我特意总结了容易导致薪水低的九大行为表现,避开这些大坑,你就离高薪不远了。

习惯即刻回报

他不懂得只有春天播种,秋天才会有收获。刚刚付出一点点,甚至还没有付出,就想要得到回报。技术刚刚掌握,能一边百度一边干活了就觉得该拿到多少多少钱了。找工作先想着多少多少钱,入职了没干几个月就想着要加多少多少钱,干了没几个月,薪水要是没涨,就放弃了,准备通过跳槽加薪,不跳槽的话,往往也会因为没加薪而牢骚满腹,工作敷衍了事。

一个程序员的价值,是通过他带给公司的价值体现的。先给公司带来了价值,然后才会反过来在薪水上体现出自己的价值。公司都很现实,很少会为你的潜力买单,在你还没有体现出价值时就给你很高的薪水。

在生活和工作中,一定要懂得付出,不要那么急功近利,马上想得到回报。天下没有白吃的午餐,你想获得什么,就得先付出什么。唯有种下种子,然后浇水、施肥、除草、杀虫,然后才能等来收获。

程序猿的幽默趣图,你并不懂他们的真正世界

作为程序员 ,你不能错过的幽默!

1、旁人眼中的程序猿和真实世界的程序猿。

humor1

2、多线程的理论和现实。

humor2

3、你是这样的还是那样的BUG?

humor3

4、我想重构,但又怕重构后,从此程序就不能再正常……..

humor4

5、客户的期望VS最终产品

humor5

来自:网络

为自己的应用配备上 3D Touch 功能

随着 iPhone 6s 以及 iPhone 6s Plus 的发布,开发者们现在就可以为自己的应用配备上 3D Touch 功能了,从而给界面交互方式开启一个新的维度。

正如苹果所言,开发者可以通过非常简单的 API 来使用 3D Touch ,从根本上来说,也就是 UITouch 的一个简单的新属性。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
     guard let touch = touches.first else { return }
     if traitCollection.forceTouchCapability == .Available {
        println("Touch pressure is \(touch.force), maximum possible force is \(touch.maximumPossibleForce)")
     }
}

这个新的 API 可以让应用发挥出巨大的潜力,比如说游戏中的额外控制选项、绘图应用中的细粒度(fine-grained)控制,甚至是用来替代我们在 iOS 设备中使用过的长按操作(tap-and-hold)的极佳选择。

除了 UITouch 中新增的 API 外,苹果还为应用提供了两个用来增加3D Touch 功能的类集:UIPreviewAction 和 UIApplicationShortcutItem。

UIPreviewAction允许开发者在用户使用 3D Touch 功能触控一个 UI 元素的时候,快速地在一个新的预览窗口中显示某些内容。这种快速浏览应用特定内容的方式真的非常棒,比如说我们可以快速预览邮件信息、照片,甚至是网页内容,而无需弹出一个完整的视图控制器。

UIApplicationShortcutItem对象能够让 iOS 主屏幕激活一项令人惊叹的新特性。当用户使用 3D Touch 按下某个应用的图标时,一个选项列表就会被弹出,允许用户快速跳转至应用的特定部分,或者执行某项应用内的功能。

touch

总而言之,3D Touch 的引入给 iOS 设备解锁了一个全新的交互方式,并且将会给接下来的 iOS 应用带来新一代的创新。关于3D Touch 的实例代码和相关信息可以在苹果开发者网站的3D Touch网页上找到,祝你好运!

作者:Tim Oliver @TimOliverAU — iComics创始人

两个非常不错的自定义UIAlertView第三方类库

UIAlertView大家都不陌生了。UIAlertView不可以添加控件,比如说:UILabel、UITextView等等,所以遇到这个需求,一般都要自定义UIAlertView来解决。

我再github上找到了两个非常错的自定义UIAlertView第三方类库,分别是:LMAlertView和CustomIOSAlertView。

LMAlertView使用简介

LMAlertView在github上有610个star。说明这个第三方的UIAlertView还不错,我大概看了一下用法也比较简单。

来看看两个个案例效果:

1

一次皆大欢喜的程序员跳槽加薪

我的朋友A君是个典型的.NET开发人员,技术不错,人品也不错,在一家小公司(姑且称为甲公司)做项目开发,是技术骨干。

3个月前,他找到我说想跳槽,让我帮忙介绍工作。我说为什么想跳了?

1.为什么想离职?

他简单说了一下他在甲公司当时的状况:A君在甲公司做了两年多,这两年多完成了一个大项目,作为开发的核心主力,开发压力很大,特别是项目上线前的几个月是非常辛苦,几乎每晚都要加班到12点以后,周末最多只有一天休息。在最困难的时候,老板给大家大气,“大家再坚持坚持,项目上线赚钱了,就给大家涨工资,公司是绝对不会亏待大家的”,在老板豪情壮语的加薪鼓励下,大家要紧牙关拼上了。终于,半年前,项目上线了,运行也慢慢稳定了,公司赚钱也多了起来。

是的,公司赚钱了,利润很可观,这是大家都知道的事情。但是,一两个月过去了,加薪的事情完全没影,老板就像从来没提过一样。于是,A君向人事经理说出了希望加薪的请求,最后,得到的回复(在小公司,这当然是老板的意思):(1)A君目前的工资与外面相比,基本是持平的。(2)A君目前的工作很悠闲,工作量不饱和。

关于(1)实际上是个难题,两个人的工资要怎么比较,几乎都是老板一个非常主观的想法。而关于(2),却是事实:由于新的项目还在调研中,所以,A君的工作暂时就轻松了不少,主要就是维护线上的系统,加加小功能,修修小bug,比较清闲。