自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

月若无涯的专栏

专注移动开发

  • 博客(78)
  • 收藏
  • 关注

原创 在WebView中使用webp格式图片

很早之前,我们的项目中就已经采用了webp格式,但是由于webView本身并不能解析webp格式,所以我们基于webView的文章详情页就无法使用到这项优化。 那么有没有什么办法能实现呢?当然是有的。本文介绍较为核心的处理方案,以及踩过的一些坑。希望对大家有所帮助。

2016-05-31 14:39:28 7850

原创 用JavaScriptCore做android和iOS都兼容的JS-NativeSDK

最近在给公司做一个JS-Native的SDK,就是用于JS和原生之间的交互。 使用场景上主要还是webView,那么原先的url拦截的方式已经不再考虑,我们使用了iOS7之后的JavaScriptCore.framework。但是android端的JS端调用需要有interfaceName,调用方式为xxname.log('arg');

2015-11-26 11:01:11 10747 3

原创 iOS开发小技巧之--WeakSelf宏的进化

我们都知道在防止如block的循环引用时,会使用__weak关键字做如下定义:__weak typeof(self) weakSelf = self;后来,为了方便,不用每次都要写这样一句固定代码,我们定义了宏:#define WeakSelf __weak typeof(self) weakSelf = self;之后,我们可以比较方便的在需要的地方:WeakSelf;...[weakSelf

2015-07-03 11:35:27 28468 17

原创 iOS如何在页面销毁时优雅的cancel网络请求

大家都知道,当一个网络请求发出去之后立即退出页面,会变成无用请求,那么如何用最少的代码,更简洁的方式cancel掉这个无用请求呢?

2017-11-22 14:57:11 7166

转载 macOS10.12下如何丝滑的使用appium?

appium是一个自动化测试的跨平台解决方案,这篇文章针对最新版的xcode 8.2和mac OS 10.12给出基本完成的部署过程,值得一看。 本文为转载,但实际操作过程中,我也遇到了几个问题,在文章开始进行了补充。

2017-01-20 12:20:53 2966

原创 iOS网络诊断功能 ping traceroute

有时需要排查移动客户端网络状况的情况,可能由于某些地区网络运营商的问题,导致客户端某些功能不正常,需要按情况ping某域名、traceroute某域名,那么在App内如何更好的实现呢?

2016-12-02 10:52:42 9937 2

转载 从 Auto Layout 的布局算法谈性能

如何对 iOS 应用的性能进行优化以及 Auto Layout 到底为什么会影响性能?

2016-09-02 10:30:39 6198 1

原创 iOS中UI事件处理YRUISignal

遇到一些朋友还在讨论多层级view,事件抛出至VC处理的问题。 其实目前解决方案还是有一些的,比如采用ReactiveCocoa、使用通知等等,但是iOS中单纯的UI事件,其实我们还有更简单的选择: YRUISignal:https://github.com/YueRuo/YRUISignal

2016-09-02 09:32:04 879

转载 OC 自动生成分类属性方法

分类属性方法自动生成编码全过程。

2016-08-23 16:46:50 2123

转载 动态规划:从新手到专家

我们遇到的问题中,有很大一部分可以用动态规划(简称DP)来解。 解决这类问题可以很大地提升你的能力与技巧,我会试着帮助你理解如何使用DP来解题。 这篇文章是基于实例展开来讲的,因为干巴巴的理论实在不好理解。

2016-08-17 10:07:00 413

原创 ShareSDK 3.4.0 isWXAppInstalled 返回NO

升级到3.4.0版本的ShareSDK之后,发现[WXApi isWXAppInstalled]方法一直返回false,无法正常使用。初步怀疑是ShareSDK自己的bug。

2016-08-16 11:08:39 9208 2

原创 iOS10 Keychain 使用注意事项

Keychain是iOS中一直用于存储重要信息,或者删除应用后仍然想保留的数据的地方(比如存储UUID)。 今天在测试iOS10 iPad情况下时,发现数据居然无法写入,而iPhone和之前版本的iPad则都是正常的,目前还不能确认这是否是bug。 解决方案如下:

2016-08-15 17:13:45 8247 1

原创 关于Xcode8 iOS10下模拟器NSLog不输出的问题

昨天升级了Xcode8beta版,兴高采烈的打开工程启动模拟器后发现自己的NSLog输出在console中看不到了。什么原因?怎么解决?往下看:

2016-06-24 09:56:32 13197 2

原创 主题皮肤管理YRTheme简单介绍

开发中常常遇到切换主题,夜间模式什么的,一般的做法都是变了新主题就判断一下重新设置新值,代码量较多还不够清晰。 本库将主题素材与代码进行了分离,力求一次代码绑定,后续只需要更改素材即可实现主题样式更改

2016-06-16 17:21:58 1040

原创 ReactNative更换JSContext增加注入方法

对于ReactNative中JS端调用iOS的原生代码,其本质上也是利用JSContext来进行处理的,这点在看起源码后可以得到验证。 使用ReactNative调用原生方法,基本都是属于原生代码加个方法,桥接后调用起来的思路。 而本人比较喜欢直接通过JSContext注入方法调用,省去不断添加方法,并且扩展起来容易些。 可惜的是截止目前的版本0.22都不能直接访问到JSContext变量,

2016-03-23 16:42:53 3454 1

转载 JSPatch 部署安全策略

使用 JSPatch 有两个安全问题:传输安全:JS 脚本可以调用任意 OC 方法,权限非常大,若被中间人攻击替换代码,会造成较大的危害。执行安全:下发的 JS 脚本灵活度大,相当于一次小型更新,若未进行充分测试,可能会出现 crash 等情况对 APP 稳定性造成影响。接下来说下这两个问题的解决方案。传输安全方案一:对称加密若要让 JS 代码传输过

2016-02-22 10:53:49 604

原创 Keychains中此证书签发者无效的解决方法

最近很多人都遇到了“此证书签发者无效”这样的问题。 其实问题并不在于我们自己生成的证书,而是苹果的WWDRCA证书过期了。 解决方法如下: 1. 下载最新的苹果WWDRCA证书,下载地址:https://developer.apple.com/certificationauthority/AppleWWDRCA.cer,下完安装。 这时候可以检查是否之前的证书已经可用了,如果仍然不可用,则继

2016-02-16 15:36:04 2041

原创 iOS优化项之开启Bitcode

Bitcode这项功能优化还是很明显的。简单说,以前是把所有的arm7、arm64平台的源码编译好,然后打成一个App;现在开启Bitcode之后,用户在AppStore下载到的就只有自己平台对应的那部分,自然是减少了很多不必要的浪费。

2015-12-30 16:05:05 3087

原创 Aspects源码解读:动态Block调用(不定参数的Block)

Aspects是iOS开发中比较著名的AOP开源库,体积小巧而功能强大,其使用的时候有个地方比较有意思:usingBlock参数居然是可以写不定个数个参数的,换句话说,可以调用一个不定参数的Block。

2015-10-13 17:53:04 4817

原创 iOS9 JSONKit闪退解决方案

升级到iOS9之后,发现JSONKit不幸的又出现问题了,那么如何解决呢?终极解决方案: 使用系统的!! 但是使用系统JSON解析很麻烦,项目改动又比较多,尤其是一些第三方库内部也在用JSONKit,怎么办?系统JSON库如何消除换行符和空格?

2015-09-17 17:46:26 4932 11

转载 iOS 统计打点那些事

统计打点是 App 开发里很重要的一个环节,App 的运行状态、改版后的效果、用户的各种行为等都需要打点,市面上也有不少可供选择的第三方库。 假设产品有这么个需求:当用户在详情页点击购买按钮时,记录一下事件。我们实现起来大概会是这样// DetailViewController.m- (void)onBuyButtonTapped:(UIButton *)button{ //

2015-09-11 11:20:57 1231

转载 SSL/TLS协议运行机制的概述

转自:http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html互联网的通信安全,建立在SSL/TLS协议之上。本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思想和运行过程,不涉及具体的实现细节。如果想了解这方面的内容,请参阅RFC文档。一、作用不使用SSL/TLS的HTTP通信,就是不加密的通信。所有

2015-08-17 16:23:04 521

转载 2015 Objective-C 新特性

转自sunnyxx的博客:http://blog.sunnyxx.comOverview自 WWDC 2015 推出和开源 Swift 2.0 后,大家对 Swift 的热情又一次高涨起来,在羡慕创业公司的朋友们大谈 Swift 新特性的同时,也有很多像我一样工作上依然需要坚守着 Objective-C 语言的开发者们。今年的 WWDC 中介绍了几个 Objective-C 语言的

2015-07-29 17:31:31 644

转载 从武侠小说到程序员面试

作者:Lucida微博:@peng_gong豆瓣:@figure9概要受到浣花洗剑录和射雕英雄传的启发,本文使用武侠小说中的人物和事件来类比并分析当前程序员面试存在的弊端,并尝试给出一个更好的程序员面试方案。估计你会认为我在胡扯,程序员面试和浣花洗剑录怎么能扯上关系,但它们确实有关系,而且是很有意思的关系:两个故事

2015-07-29 11:15:36 994

转载 JSPatch 实现原理详解

作者介绍:bang,iOS/前端开发者,推特中文圈/伊书/JSPatch作者,博客 http://cnbang.net, 目前就职于广州腾讯。JSPatch 以小巧的体积做到了让 JS 调用 / 替换任意 OC 方法,让 iOS APP 具备热更新 的能力,在实现 JSPatch 过程中遇到过很多困难也踩过很多坑,有些还是挺值得分享的。本篇文章从基础原理、方法调用和方法

2015-07-28 12:38:02 708

原创 判断View是否显示在界面上

我们都知道ViewController有viewWillAppear和viewDidAppear等关于页面生命周期的方法,用来对视图做一些管理,比如页面出现时怎么样,页面消失时怎么样。。但是对于View,有没有类似的方法可以判断是否view出现了,view消失或者被遮挡了呢?

2015-07-24 18:11:44 8876

原创 WatchKit控件叠加达到类似addSubview的效果

最近在玩Watch,通过研究watch的布局后发现,其InterfaceController原生布局只有横向和竖向两种,且控件之间不能交叠,也无法addSubview那样添加子控件。但有没有办法达到目的呢?

2015-07-22 11:12:26 1454

转载 WatchKit 的 WKInterfaceTable 简单使用

WKInterfaceTable 类似 UITableView, 其用途即展示一个表格并且用户可以与之交互。但不同的是 WKInterfaceTable 的功能更加简单,使用上也很粗暴直接。本文一步步演示了创建一个简单的包含 WKInterfaceTable 的 Apple Watch App!我们首先按照老办法,创建一个 Single View Application 模板的 iOS 应

2015-07-17 09:22:27 1369

原创 CocoaPods did not set the base configuration of your project 问题解决方案

[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set.解决方案如下:

2015-07-16 17:52:22 6094 1

转载 招聘一个靠谱的 iOS(含面试题)

转自阳神的博客:http://blog.sunnyxx.com近一年内陆续面试了不少人了,从面试者到面试官的转变让我对 iOS 招聘有了更多的感受。经过了前段时间的一大波面试,我们终于找到了志同道合的小伙伴,面试也暂时告一段落了。总结下面试人过程中的感受,你也可以读到我们对简历、算法、性格、iOS 基础、底层知识的看法和一些常问的面试题。一个靠谱的简历简历非常能反映一个人的

2015-07-16 11:03:41 1520

原创 发布自己的pods到CocoaPods trunk 及问题记录

这两天准备把之前写的一些小玩意添加到pods库中去,参考了一些资料后进行操作,实际中也遇到了一些问题,记录下来,问题及解决方式在后面。

2015-07-08 16:07:12 3621

原创 NSAttributedString宽高计算小技巧

通常对于CoreText之类自己实现绘制的控件来说,计算富文本的宽高其实需要依赖CTFramesetterSuggestFrameSizeWithConstraints这个方法。但有些时候,我们可能只是使用UILable、UITextView等系统控件,设置了他们的attributedText,此时,计算控件宽高其实可以利用系统自身的方法。

2015-06-30 15:32:08 4376 1

原创 iOS通知中心的简单实现-YRSignal

iOS中原生的通知中心为NSNotificationCenter,这次用不到300行的代码,实现了类似通知的信号传递,并且功能上有进一步的扩展。 库名称为YRSignal,帮助大家研究类似通知这种,内部的机制。

2015-06-30 13:49:27 1105

转载 漫谈 iOS Crash 收集框架

为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如 KSCrash,plcrashreporter,CrashKit 等。追求方便省心,对于保密性要求不高的程序来说,也可以选择各种一条龙 Crash 统计产品,如 Crashlytics,Hockeyapp ,友盟,Bugly 等等。是否集成越多的 Crash 日志收集服务就

2015-06-30 13:22:54 1620

原创 iOS开发中WebP格式的64位支持处理

几个月前我们项目中增加了对webp格式的处理,期间遇到了一些问题,这是其中的一个小的记录。

2015-06-29 13:59:43 1718

原创 iOS使用脚本批量打渠道包

最近我们接到了新的需求,需要打出类似xx001-xx100共100个这样的ipa渠道包,不需要签名。(这批ipa包后续会用企业证书签名,不会影响AppStore的) 这些包所有的功能、内容都是一样的,区别在于不同的包在统计、连接我们服务器时会提供一个不同的字符串标示。 如果按照常规的打包方式,我们需要不断的修改工程中的值,然后一个个打包。。。这种毫无技术含量的活怎么能忍受!

2015-06-18 14:19:05 5187 4

转载 IOS LocationManager定位国内偏移,火星坐标(GCJ-02)解决方法

IOS7 WGS-84转GCJ-02(火星坐标)CLLocationManager类可以实时的获得我们位置的经纬度,并且可以通过经纬度在MapView上定位:[objc] view plaincopyprint?//创建CLLocationManager对象     CLLocationManager *locat

2015-06-08 11:19:03 989

转载 Objective-C Autorelease Pool 的实现原理

内存管理一直是学习 Objective-C 的重点和难点之一,尽管现在已经是 ARC 时代了,但是了解 Objective-C 的内存管理机制仍然是十分必要的。其中,弄清楚 autorelease 的原理更是重中之重,只有理解了 autorelease 的原理,我们才算是真正了解了 Objective-C 的内存管理机制。注:本文使用的 runtime 源码是当前的最新版本 objc4-646.t

2015-06-08 10:24:16 594

转载 升级到mac 10.10之后使用pod出现问题的解决方法

最新对mac 10.10的强大功能好奇,于是将系统升级到了10.10,结果发现使用pod出现了下面的问题:?123456789101112131415/System/Library/Frameworks/Ruby.framewo

2015-06-03 12:10:24 704

原创 iOS绘图-线条旋转锯齿问题

最近在使用我的绘图控件YRBordView时,发现做旋转和抖动动画时有明显的锯齿出现,经过查资料,解决方案如下:绘制时不要紧靠控件边缘,距离各边只要留出1像素(1px)即可解决。找到方案后,顺便也把我的控件再次升级,支持通过设置contentEdgeInsets来调整绘制线条的边距。

2015-05-28 19:39:19 2431

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除