自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(223)
  • 资源 (1)
  • 收藏
  • 关注

转载 高质量 iOS 博客推荐

推荐一些我个人认为非常经典,值得关注的博客。OneV's Den大家尊称为喵神 @onevcat 的博客。对 Swift 技术在国内的推广做了很大的贡献。Limboy’s HQ李忠关于 RAC 、组件化的文章流传很广。博客中对架构、编程的思考都很精髓。听说现在转管理后不太更新技术文了。Casa TaloyumCasa 对架构有很深的理解,《iOS 应用架构谈》系列文章影

2018-04-18 15:25:10 272 1

转载 WKWebView的使用和各种坑的解决方法(OC+Swift)

WKWebView的基本介绍和使用WKWebView的几个代理方法WKWebView是苹果在iOS 8中引入的新组件,目的是给出一个新的高性能的WebView解决方案,摆脱过去 UIWebView的老、旧、笨重,特别是内存占用量巨大的问题,它使用Nitro JavaScript引擎,这意味着所有第三方浏览器运行JavaScript将会跟safari一样快。看到我这篇文章的小伙伴,对iO

2017-12-22 14:39:51 3628

原创 ios居然自带悬浮窗调试工具

我们经常使用各种调试工具,或者开源库来支持悬浮窗调试信息,但苹果的私有方法就提供了UIDebuggingInformationOverlay。系统要求:  ios10+,iOS11 目前在我自己的手机上测试是行不通的。如果英语不错的可以去看这篇,看完记得通知我一下噢。https://www.raywenderlich.com/177890/swizzling-in-ios-11-w

2017-12-21 10:56:34 3570

原创 无侵入埋点之从UIApplicationMain函数的参数入手

文章目录OC代码分析第一个参数 argc第二个参数 argv第三个参数 nil(principalClassName) 无侵入埋点实现方案重点在此参数第四个参数 delegateClassNameSwift代码分析乍一看标题 UIApplicationMain函数怎么会和无侵入埋点扯到一块呢,下边先来慢慢分析 UIApplicationMain函数一 OC

2017-11-27 15:15:19 833

原创 FOUNDATION_EXPORT 与#define

FOUNDATION_EXPORT 与 #define 都可以用来定义常量.h文件FOUNDATION_EXPORT NSString *const kMyConstantString;.m文件是这样定义的 NSString *const kMyConstantString = @"hello world";另一种就是常用的#define 方法定义常量了#define kMyConstant

2017-11-21 16:57:38 326

转载 类似微信语音上滑取消,下滑发送的效果实现

今天周五,本周工作终于完成了。早上来公司,把过去这几个月做的东西整理整理,写几篇博客。上篇文章写了讯飞语音听写自定义UI的实现,这里讲一下具体实现中的一些交互功能的实现。类似于微信语音的上滑取消,下滑发送。你可以用手势来做,也可以用按钮的点击事件来做。我这里介绍一下按钮的点击事件做法,因为个人觉得手势虽好,但是如果当前 页面有其他手势的话,难免会有冲突,所以用按钮来实现是最为简单的。代码如下

2017-10-26 09:04:53 2099 1

转载 iOS 模块详解—「Runtime面试、工作」看这就够了

引导对于从事 iOS 开发人员来说,所有的人都会答出「 Runtime 是运行时 」,什么情况下用 Runtime ?,大部分人能说出「 给分类动态添加属性 || 交换方法 」,再问一句「 Runtime 消息机制的调用流程 || 能体现 Runtime 强大之处的应用场景 」,到这,能知道答案的寥寥无几,很少有人会说到 “黑魔法” 这三个字。Runtime 是 iOS 编程中比较难的模块

2017-10-25 17:22:15 353

转载 iOS面试题--如何在项目中处理页面中的多个网络请求

面试题:如何在项目中处理页面中的多个网络请求。在开发中很多时候会有这样的场景,同一个界面有多个请求,而且要在这几个请求都成功返回的时候再去进行下一操作,对于这种场景,如何来设计请求操作呢?今天我们就来讨论一下有哪几种方案。分析:在网络请求的开发中,经常会遇到两种情况,一种是多个请求结束后统一操作,在一个界面需要同时请求多种数据,比如列表数据、广告数据等,全部请求到后再一起刷新界面。另

2017-10-25 10:31:07 2558

转载 【iOS 开发】Status Bar 状态栏设置汇总

状态栏个人觉得 iOS 的 Status Bar 状态栏也是一个比较坑的地方,所以还是写一个总结,有遇到这方面问题的朋友可以看一下。Status Bar 状态栏的隐藏1. 通过设置 Info.plist 文件实现状态栏的全局隐藏在 Info.plist 文件中添加 Status bar is initially hidden 设置为 YES ,这个是隐藏 App 在 LunchSc

2017-10-24 11:49:33 549

转载 iOS中的锁的介绍及简单使用

在平时的开发中经常使用到多线程,在使用多线程的过程中,难免会遇到资源竞争的问题,那我们怎么来避免出现这种问题那?线程安全是什么?当一个线程访问数据的时候,其他的线程不能对其进行访问,直到该线程访问完毕。简单来讲就是在同一时刻,对同一个数据操作的线程只有一个。只有确保了这样,才能使数据不会被其他线程影响。而线程不安全,则是在同一时刻可以有多个线程对该数据进行访问,从而得不到预期的结果。比如写文

2017-10-24 11:18:32 415

原创 iOS开发-------属性用copy、strong修饰的区别

Copy,Strong的区别需要了解点内存管理的知识,Strong是ARC下引入的修饰,相当于手动管理内存(MRC)下的retain,在相关代码下,常常看到有的人用copy修饰NSString,NSArray,NSDictionary..等存在可变与不可变之分的对象,常常会用copy,而不是strong,下面代码来解释一下strong与copy的区别:先说明一下什么叫做浅拷贝,什么叫做深拷

2017-10-18 11:45:20 251

原创 Socket 进行UDP广播数据(GCDAsyncUdpSocket)

在做一个App的时候,有一个需求是服务端在局域网当中发送广播数据,然后连接到此局域网当中的客户端接收到广播数据后,对广播数据做出相应地回复。在这个需求当中广播的唯一的好处就是客户端连接到局域网当中不需要知道服务端的IP地址,客户端通过收到服务端的广播消息之后,从广播报文当中获取到服务端的IP地址。唯一的不足是广播是一个耗能的操作,要控制好广播时间和广播的频率。客户端和服务端之间通信我们当然要用

2017-07-14 14:55:54 435

转载 极光证书记下来方面以后使用

App中推送功能越来越普及,但是对于不经常做推送的人来说配置证书真的是非常痛苦的事。本文将以集成极光推送为例,详细讲解配置APNS证书的过程。集成推送总体分为以下步骤1.创建APP应用,并且配置APNS证书2.在极光推送平台创建应用1.创建APP应用,并且配置APNS证书登录到苹果开发者账号https://developer.apple.com/acco

2017-07-07 16:21:22 535

转载 iOS 极光推送开发环境可以收到,生产环境收不到推送

极光推送开发环境可以收到,生产环境收不到推送首先阐述一下我遇到的问题我们项目连通了极光推送,以前写过的项目也是这样 在开发环境下测试 好使了 但是打包ADHoc时候 就不好使了,当时也没在意 因为网上好多人说 只要测试好使了 证书显示配置成功了(绿灯) 那就没问题了so 上线 然后上线以后 发现推送功能完全不好使!这就尴尬了 赶紧下架因为我们项目使用的是别名推送

2017-05-04 15:08:44 777

转载 iOS打包后收不到推送信息

今天遇到的一个特别神奇的问题:应用在测试环境下打的包收不到推送了,打包之后都没有推送,但是我真机测试又是可以收到推送消息的。经过好久才找到原因,感觉很坑。这里记录一下问题:1.由于我的推送第三方使用的是"个推",我先用个推的官网发了一条推送消息,发现安装ipa包的设备还是没有收到;;2.连真机Xcode运行测试,手机可以收到推送.;3.然后不知道为啥,百度"iOS打

2017-05-04 10:03:24 1840

原创 2016最新整理黑马程序员JavaEE第28期 基础班就业班

2016最新整理黑马程序员JavaEE第28期 基础班就业班试看地址:链接: 链接: http://pan.baidu.com/s/1gfkkphh 密码: sfvb================================== 2016最新整理黑马程序员JavaEE第28期 基础班就业班====

2017-04-03 22:20:31 760

转载 iOS中GCD的使用小结

本篇博客共分以下几个模块来介绍GCD的相关内容:多线程相关概念多线程编程技术的优缺点比较?GCD中的三种队列类型The main queue(主线程串行队列)Global queue(全局并发队列)Custom queue (自定义队列)Group queue (队列组)GCD中一些系统提供的常用dispatch方法欢迎访问作者个人博客www.dullgrass.com,更多好的文

2017-03-23 17:50:41 210

转载 一步一步实现iOS微信自动抢红包(非越狱)

此教程所需要的工具/文件yololibclass-dumpdumpdecryptediOSOpenDeviToolsOpenSSH(Cydia)iFile(Cydia)Cycript(Cydia)Command Line ToolsXcode苹果开发者证书或企业证书一台越狱的iPhone是的,想要实现在非越狱iPhone上达到自动抢红包的目的,工具用的可能是有点多(工欲善其事必

2017-03-14 20:39:15 2209

转载 React Native的WebStorm基本设置

jsx语法设置在没有进行设置的情况下,每次打开WebStorm的时候打开包含jsx语法的.js文件都会有以下提示:当然我们点击转换后就可以了,但是每次都会提示,所以还是来一个一劳永逸的方法把它给去掉吧:然后Apply/OK即可。设置.js文件中支持react-native语法高亮首先会发现在js文件中有不少的警告,类似这样:

2017-03-07 10:25:23 244

原创 Xcode代码块转移备份同步(CodeSnippets)代码块路径

代码块的保存路径;~/Library/Developer/Xcode/UserData/CodeSnippets

2017-02-15 13:29:41 319

原创 pod安装失败

1、那是因为 淘宝的那个镜像(https://ruby.taobao.org/ )已经不可用了。所以我们现在用最新支持的ruby镜像(https://gems.ruby-china.org/)  需要的命令行:  $ gem sources -r https://rubygems.org/ (移除旧版本的镜像,如果你不知道你电脑上目前用的是什么镜像,可用  $ gem sources -l  来查

2017-02-15 11:09:21 296

转载 一步步构建iOS路由(自己已优化出新的版本)

http://www.jianshu.com/p/3a902f274a3d接上一篇移动端路由层设计为啥要说iOS路由呢?路由层其实在逻辑上的设计都是一样的,关于对界面跳转的实现部分却与Android平台和iOS平台上的导航机制有着非常紧密的关系,Android操作系统有着天然的架构优势,Intent机制可以协助应用间的交互与通讯,是对调用组件和数据传递的描述,本身这种机制就解除了代

2016-12-23 10:37:29 459

转载 移动端路由层设计

http://www.jianshu.com/p/be7da3ed4100什么是移动端路由层:路由层的概念在服务端是指url请求的分层解析,将一个请求分发到对应的应用处理程序。移动端的路由层指的是将诸如App内页面访问、H5与App访问的访问请求和App间的访问请求,进行分发处理的逻辑层。移动端路由层需要解决的问题:对外部提供远程访问的功能,实现跨应用调用响应,包括H5应用

2016-12-23 09:15:25 390

转载 iOS 组件化方案探索

本文出自:http://blog.cnbang.net/tech/3080/看了 Limboy(文章1 文章2) 和 Casa (文章) 对 iOS 组件化方案的讨论,写篇文章梳理下思路。首先我觉得”组件”在这里不太合适,因为按我理解组件是指比较小的功能块,这些组件不需要多少组件间通信,没什么依赖,也就不需要做什么其他处理,面向对象就能搞定。而这里提到的是较大粒度的业务

2016-12-01 18:18:20 287

转载 iOS动态性(二)可复用而且高度解耦的用户统计埋点实现

用户统计.jpeg用户行为统计(User Behavior Statistics, UBS)一直是移动互联网产品中必不可少的环节,也俗称埋点。在保证移动端流量不会受较大影响的前提下,PM们总是希望埋点覆盖面越广越好。目前常规的做法是将埋点代码封装成工具类,但凡工程中需要埋点(如点击事件、页面跳转)的地方都插入埋点代码。一旦项目越来越复杂,你会发现埋点的代码散落在程序的各个角落,不利于维

2016-10-21 18:03:06 273

转载 神经病院Objective-C Runtime出院第三天——如何正确使用Runtime

前言到了今天终于要"出院"了,要总结一下住院几天的收获,谈谈Runtime到底能为我们开发带来些什么好处。当然它也是把双刃剑,使用不当的话,也会成为开发路上的一个大坑。目录1.Runtime的优点(1) 实现多继承Multiple Inheritance(2) Method Swizzling(3) Aspect Oriented Programming(4) Isa Sw

2016-10-21 18:00:16 531

转载 神经病院Objective-C Runtime住院第二天——消息发送与转发

前言现在越来越多的app都使用了JSPatch实现app热修复,而JSPatch 能做到通过 JS 调用和改写 OC 方法最根本的原因是 Objective-C 是动态语言,OC 上所有方法的调用/类的生成都通过 Objective-C Runtime 在运行时进行,我们可以通过类名/方法名反射得到相应的类和方法,也可以替换某个类的方法为新的实现,理论上你可以在运行时通过类名/方法名调用到任何

2016-10-21 17:43:33 521

转载 IOS 空值 nil Nil NULL NSNull kCFNull

先来看个stackOverflow上的例子:if (nameTextField.text != (id)[NSNull null] || nameTextField.text.length != 0 ) { NSString *msg = [[NSString alloc] initWithFormat:@"Hello, %@", txtName.text]; [lblMes

2016-10-21 15:00:30 407

原创 YYModel里的一些细节

1、判断文件是否存在,再导入使用,避免文件不存在的情况;[objc] view plain copy#if __has_include()  # include   #elif __has_include()  # include   #else  # error "Insane system"  #endif  

2016-10-21 14:40:43 306

转载 Setting up CocoaPods master repo 卡着不动

1、那是因为 淘宝的那个镜像(https://ruby.taobao.org/ )已经不可用了。所以我们现在用最新支持的ruby镜像(https://gems.ruby-china.org/)  需要的命令行:  $ gem sources -r https://rubygems.org/ (移除旧版本的镜像,如果你不知道你电脑上目前用的是什么镜像,可用  $ gem sour

2016-09-30 17:16:34 347

转载 深入浅出 React Native:使用 JavaScript 构建原生应用

作者:kmokidd链接:https://zhuanlan.zhihu.com/p/19996445来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Facebook 对外宣布了正在开发的 React Native 框架,这个框架允许你使用 JavaScript 开发原生的 iOS 应用——就在今天,Beta 版的仓库释出了!基于 P

2016-09-29 13:51:35 434

转载 iOS 10 升级后无法真机测试 Could not find Developer Disk Image

---2016年9月20日更新iOS 升级到10之后,你会发现无法进行真机测试了。这种情况我在iOS 8.4 、9.3更新的时候也遇到过。原因是Xcode 的DeviceSupport里面缺少了iOS 10的SDK。所以你可以选择将Xcode更新到最新版本就可以了,目前是必须更新到Xcode 8。但是Xcode的更新速度你是知道的,快的时候一两个小时,慢的时候可能要一两天。而从网盘里面下载

2016-09-26 11:36:32 374

转载 如何使用TestFlight进行App构建版本测试

在日常的开发当中,当一个项目在开发过程中或者完成准备上线,都需要我们进行真机测试,否则不可能开发完了就直接扔到了App,等上线了再下载看看,这都是不可能的。那么说到真机测试,大家肯定会想到弄一个99美刀的开发者账号,然后在开发者账号中把自己的设备注册成测试机,下载一个证书,一个描述文件,安装,运行,搞定。我平时也是这么搞得,但是对于高度强迫症的我来说,在项目发布前还是不放心使用测试机进行测试,万一

2016-09-24 15:21:29 449

转载 iOS 10 的适配问题

原文链接:http://www.jianshu.com/p/f8151d556930随着iOS10发布的临近,大家的App都需要适配iOS10,下面是我总结的一些关于iOS10适配方面的问题,如果有错误,欢迎指出.1.系统判断方法失效:在你的项目中,当需要判断系统版本的话,不要使用下面的方法:#define isiOS10 ([[[[UIDevice currentDevice] systemVe

2016-09-20 11:06:04 264

原创 IOS多线程-GCD

GCD什么是GCD全称是Grand Central Dispatch,可译为“强大的调度器”纯C语言,提供了非常多强大的函数GCD的优势GCD是苹果公司为多核的并行运算提出的解决方案GCD会自动利用更多的CPU内核(比如双核、四核)GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码GCD的

2016-09-07 11:10:46 234

转载 讲解delegate,notifucation,KVO三种模式实现通信的优缺点

在开发iOS应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信。在IOS应用不断的出现三种模式来实现这种通信:        1.委托delegation;        2.通知中心Notification Center;        3.键值观察key value observing,KVO        

2016-08-24 17:10:50 236

转载 如何设计一个 iOS 控件?(iOS 控件完全解析)

代码的等级:可编译、可运行、可测试、可读、可维护、可复用前言一个控件从外在特征来说,主要是封装这几点:交互方式显示样式数据使用对外在特征的封装,能让我们在多种环境下达到 PM 对产品的要求,并且提到代码复用率,使维护工作保持在一个相对较小的范围内;而一个好的控件除了有对外一致的体验之外,还有其内在特征:灵活性低耦合易拓展易维护

2016-08-24 13:30:16 260

转载 iOS 万能跳转界面方法 (runtime实用篇一)

在开发项目中,会有这样变态的需求:推送:根据服务端推送过来的数据规则,跳转到对应的控制器feeds列表:不同类似的cell,可能跳转不同的控制器(嘘!产品经理是这样要求:我也不确定会跳转哪个界面哦,可能是这个又可能是那个,能给我做灵活吗?根据后台返回规则任意跳转?)思考:wocao!这变态的需求,要拒绝他吗?switch判断呗,考虑所有跳转的因素?这不得写死我...switch

2016-08-18 09:22:17 234

转载 Perfect smooth scrolling in UITableViews

我已经在iOS这个最好的移动平台上有几年的开发经验了。在这期间,我已以接触过很多的iOS应用和iOS工程师。我们的世界很多好的开发者,但有时我发现他们中的一些人并不是很清楚如何充分利用这个最受欢迎的移动设备的整体潜力,来开发真正平滑的应用。现在,我将尝试从我的视角,来说明一下为了让UITableView更快更平滑,工程师应该做哪些优化。文章越往后,难度和深度也会不断增加

2016-08-17 09:54:46 211

转载 导入Eclipse工程 到 Android Studio

一、从Eclipse导入工程到Android Studio根据官方的介绍,Android Studio可以兼容Eclipse的现有工程,但需要做一些操作:首先升级ADT到最新版本,目前为版本号为22(注意和ADT相关的组件最好一并升级,避免后期可能出现的错误)选择需要从Eclipse导出的工程,右键选择Export并选择Android下的Generate Gradle Bu

2016-06-27 23:06:58 385

IOS多线程教程

ios多线程,开辟新的线程,提高下载速度,使页面加载更加快捷

2014-09-01

空空如也

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

TA关注的人

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