自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Thinker361的专栏

引领技术巅峰,黑客无所不能。

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

原创 常见工具总结

常见工具总结日志类CocoaLumberjack 支持OC & Swift, 分级别的一个日志系统,最主要的是支持写入文件,然后导出文件就可以查看日志信息。DebugWindow 支持OC,一个轻量级的基于Window的调试工具HCDeviceConsole 支持OC, 这也是一个很轻量级的Log工具,就引入两个文件,然后一句话开启服务,就可以把所有的NSLog日志都输出到Window

2017-08-07 08:40:58 1007

翻译 手把手教你利用Jenkins持续集成iOS项目

前言众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段。用户们都是很挑剔的。如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一批的用户在使用中纷纷出现闪退bug,轻则,很可能前期推广砸的钱都白费了,重则,口碑不好,未来也提升不起用户量来了。静下心来分析一下问题的原因,无外乎就是质量没有过关就上线了。除去主观的一些因素,很大

2017-07-24 09:48:46 634

原创 react-native 遇到的错误

ReferenceError: Can't find variable: __fbBatchedBridge...react-native启动用来做JavaScript的代码的服务,是本地的服务,App默认访问的host地址是localhost,运行到真实的设备上面的时候无法访问react-native服务,因此会出现上面的错误。Android解决方案:对adb的ser

2017-07-14 10:16:51 1068

原创 React-Native集成到已有项目过程及问题处理

先看搞清楚项目目录情况: 第一层目录:项目根目录: iOS-2028-master/ 第二层目录:原生项目根目录:iOS-2048-master/NumberTileGame/另外假设已经全局安装好node、npm、cocoapods、react-native cli等工具,这些工具没有安装的,请先自行Google安装。Packages Installation进入项目根目录 iOS

2017-07-13 20:45:10 2516

原创 Metal学习

学习使用苹果GPU加速3D绘图的新API:Metal Metal和OpenGL ES相似,它也是一个底层API,负责和3D绘图硬件交互。它们之间的不同在于,Metal不是跨平台的, Metal 是用 Objective-C 编 写的,基于 Foundation,使用 GCD 在 CPU 和 GPU 之间保持同步。与之相反的,它设计的在苹果硬件上运行得极其高效,与OpenGL ES相比,它提供了更快

2017-07-13 20:04:27 1329

翻译 让我们从机器学习谈起

让我们从机器学习谈起导读:在本篇文章中,将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。当然,本文也面对一般读者,不会对阅读有相关的前提要求。 在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢? 我并不直接回答这个问题前。相反,我想请

2017-07-06 11:15:29 2787 4

原创 Metal入门(使用Metal画一个三角形)

Metal 入门

2017-07-03 19:48:29 2287

原创 JavaScript函数的几种写法

几种常见写法1. 常规写法: 最常规的写法// 函数的定义function foo(){ alert('常规写法');}// 函数的调用foo()2. 匿名函数写法 给一个变量赋值为一个函数,即变量也为函数对象// 函数的定义var foo = function(){ alert('匿名函数定义');}// 函数的调用foo()3. 将方法作为一个对象

2017-06-29 15:26:28 6677

原创 Swift和OC的区别(基于Swift3.0)

Swift无疑是iOS程序员的未来,但是目前苹果公司还在不端更新和改变Swift,甚至在语法层面还在不断探索,虽然xcode提供一些直接适配新版本Swift语法的快捷键,但给我们学习不免造成一些影响,这里是基于Swift3.0和OC的一些基础性知识的比较。一. 基础部分1.Swift的类型是在C和Objective-C的基础上提出的,Int是整型;Double和Float是浮点型;Bool是布尔型

2017-06-20 20:16:06 1434

原创 Xcode9无线真机调试

很高兴,今年受到Apple的邀请,去现场参加WWDC17,我将陆续地把我所学到和听到的一些内容整理出来,也尽可能多地分享给大家。如果想了解和学习更多的内容,可以直接参看Apple开发者官方视频课程。这里我先说一下Xcode9无线真机调试内容。软硬件条件 macOS 10.12.5 及以上版本 Xcode9 beta 及其以上版本 iOS 11.0 beat 及以上版本 开始准

2017-06-12 17:19:38 4041

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用

2017-06-12 16:34:20 404

原创 iOS接入支付宝支付

因为近期项目中需要接入支付宝支付功能,自己也爬了很多的坑,所以做了一下这边文章供大家学习参考,远离爬坑,文章主要讲到以下五部分:一、支付宝开放平台创建应用二、签约移动支付功能三、接入支付前的准备工作附准备工作中遇到难题的解决方法四、配置官方Demo附BUG解决方法五、集成项目,具体代码编写、本文为本人学习记录笔记,如需转载,请注明出处

2017-05-31 18:06:41 3105

原创 iOS 并发编程之 Operation Queues

现如今移动设备也早已经进入了多核心 CPU 时代,并且随着时间的推移,CPU 的核心数只会增加不会减少。而作为软件开发者,我们需要做的就是尽可能地提高应用的并发性,来充分利用这些多核心 CPU 的性能。在 iOS 开发中,我们主要可以通过 Operation Queues、Dispatch Queues 和 Dispatch Sources 来提高应用的并发性。本文将主要介绍 Operatio

2017-03-11 18:11:44 340

原创 Swift中协议的简单介绍

前言熟悉objective-c语言的同学们肯定对协议都不陌生,在Swift中苹果将protocol这种语法发扬的更加深入和彻底。Swift中的protocol不仅能定义方法还能定义属性,配合extension扩展的使用还能提供一些方法的默认实现,而且不仅类可以遵循协议,现在的枚举和结构体也能遵循协议了。基于此本文从 1,协议中定义属性和方法,2,协议的继承、聚合、关联类型,3,协议的扩展,

2017-03-10 18:04:17 681

原创 ExternalAccessory框架

这个框架能做什么顾名思义:External:外部的;Accessory:配件。应该是和外部设备相关的一个框架。ExternalAccessory框架,就是可以用来和Lightning接口的硬件,或者蓝牙(2.1)设备进行连接、通讯的这么一个框架。(当然,也可以和30-pin接口的硬件连接、通讯——不过现在几乎没有这种接口的设备了吧~)就是你现在有一个Lightning耳机(

2017-03-10 17:06:49 2299

原创 iOS 开发技术栈与进阶

最近有一些开发朋友问我应该怎样提升自己的能力,回想起来做了这么久 iOS 开发,我也有过那种“让我做一个功能实现个需求我会做,但接下来怎样提高我不知道。”的时期,这里尝试列一下 iOS 开发的相关技术,再说说在学习进阶上我的一些想法。iOS 技术栈这里按我的理解给 iOS 相关技术分个类,以工程实现的角度,分成了基础、需求、效率、质量四个类别。基础指程序开发和 iOS 开发的基础知

2017-03-10 17:02:46 405

原创 用 Swift 编写面向协议的视图

我最近做了个 Swift 面向协议编程实践 (POP:boom:) 的演讲。视频还在处理中。另一方面,这是演讲中 POP 视图部分的文本记录,供我和其他任何人作参考! 简单的任务假设你要写一个由一张图片和一个按钮构成的简单应用,产品经理希望按钮被点击的时候图片会抖动,就像这样:由于这个动画常常在用户名或者密码输入错误时被用到,所以我们很容易就能 在 StackOve

2017-03-06 16:26:29 1495 2

原创 不要用子类!Swift的核心是面向协议

作者:ray1689718 授权本站转载。本篇文章翻译自:IF YOU'RE SUBCLASSING, YOU'RE DOING IT WRONG.原作者:Hector Matos原发表日期:2015-07-13Swift的核心我们可以通过等式的传递性来理解swift:Swift的核心是面向协议的编程。面向

2017-03-06 16:02:40 762

原创 iOS 架构模式--解密 MVC,MVP,MVVM以及VIPER架构

在 iOS 中使用 MVC 架构感觉很奇怪? 迁移到MVVM架构又怀有疑虑?听说过 VIPER 又不确定是否真的值得切换?相信你会找到以上问题的答案,如果没找到请在评论中指出。你将要整理出你在 iOS 环境下所有关于架构模式的知识。我们将带领大家简要的回顾一些流行的架构,并且在理论和实践上对它们进行比较,通过一些小的例子深化你的认知。如果对文中提到的一些关键词有兴趣,可以点击连接去

2016-12-08 09:25:06 704

原创 总结自己的Git常用命令

总结自己的Git常用命令使用git也有一段时间了,把自己常用的命令用自己的描述记录起来,方便自己备忘也方便其他人参考。目录:  最基本的命令:git clone 拷贝并跟踪远程的master分支。跟踪的好处是以后可以直接通过pull和push命令来提交或者获取远程最新的代码,而不需要指定远程分支名字。git submodule initgit submodu

2016-11-30 14:18:03 392

转载 十大OpenGL教程

1.http://nehe.gamedev.NET/    这个是我觉得全世界最知名的OpenGL教程,而且有网友将其中48个教程翻译成了中文http://www.owlei.com/DancingWind/Nehe 此教程最大的特点是提供了针对不同平台、不同编译器、不同语言的各种版本。你不用考虑自己用的是Linux/Windows、VC/BC、C++/Java/C#/VB,甚至D语言,你

2016-11-29 09:07:55 1819

原创 Swift 3必看:新的访问控制fileprivate和open

Swift 3必看:新的访问控制fileprivate和open在swift 3中新增加了两种访问控制权限 fileprivate和 open。下面将对这两种新增访问控制做详细介绍。fileprivate在原有的swift中的 private其实并不是真正的私有,如果一个变量定义为private,在同一个文件中的其他类依然是可以访问到的。这个场景在使用e

2016-10-26 09:16:10 534

原创 Xcode中的 workspace, project, target, scheme

最近在做SDK兼容性测试发现一个问题,就是编译出来的SDK,在iOS8以下的系统中不能用。查了下,发现是编译设置错了,虽然我target设置的是支持iOS6以上的,但是工程设置的还是iOS8以上。xib文件编译的版本是根据project设置,而不是target,这个也是为什么在低于iOS8中不能用的原因。正好之前对SDK开发进行了工程拆分和重组,也使用了workspace,顺便也了解了些编译相关的

2016-10-19 16:50:49 415

原创 为什么要使用 Node.js

为什么要使用 Node.js这是一个移动端工程师涉足前端和后端开发的学习笔记,如有错误或理解不到位的地方,万望指正。Node.js 是什么传统意义上的 JavaScript 运行在浏览器上,这是因为浏览器内核实际上分为两个部分:渲染引擎和 JavaScript 引擎。前者负责渲染 HTML + CSS,后者则负责运行 JavaScript。Chrome 使用的 Java

2016-08-26 15:00:50 1234

原创 js中(function(){…})()立即执行函数写法理解

摘要javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解。( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调

2016-08-26 11:33:48 545

原创 深入理解 React

这是一篇源自官方博客 的文章。代码参考链接:http://jsfiddle.net/reactjs/zafjbw1e/?utm_source=website&utm_medium=embed&utm_campaign=zafjbw1e在我看来, React 是较早使用 JavaScript 构建大型、快速的 Web 应用程序的技术方案。它已经被我们广泛应用于 Facebook 和

2016-08-15 17:20:42 690

原创 Objective-C Autorelease Pool 的实现原理

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

2016-08-12 22:25:57 395

原创 制作Swift Framework

不墨迹,直接上干货:1、 Xcode -> New Project -> iOS Tab -> Framework & Library -> Cocoa Touch Framework -> Language:Swift2、然后新建一个Swift文件,命名名称最好与Framework 名相同(可以不同);3、在该swift文件里面编写一个类型,注意,类access cont

2016-06-08 15:58:16 2072

转载 制作Swift Framework

Creating your first iOS FrameworkJake Craige  January 07, 2016IOSIf you’ve ever tried to create your own iOS framework, you know that it’s not for the faint of heart – managing d

2016-06-08 10:04:41 1652

原创 Swift 开源项目精选

https://github.com/ipader/SwiftGuide/blob/master/Featured.md#networkSwift 开源项目精选基于《Swift 语言指南》开源项目收录,做了一个甄别和筛选,并辅以一句话介绍。还有开发者们自己维护的《开发者、项目、最佳实践》@SwiftLanguage 更新至 2016-5-17,最近新收录 28 个(详见《Iss

2016-05-31 15:58:06 513

原创 第三方库引用参考这个链接

第三方库引用参考这个链接:http://www.kancloud.cn/digest/ios-mac-study/84557

2016-05-23 22:53:19 614

原创 iOS、mac开源项目及库汇总

UI 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件。 SVPullToRefresh - 下拉刷新控件。 MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写) XHRefreshControl - X

2016-05-21 23:09:26 9848 1

原创 时间复杂度和空间复杂度详解

没有挤公交来上班过,就不知道生活的压力有多大。算法的时间复杂度和空间复杂度合称为算法的复杂度。1.时间复杂度(1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数

2016-05-18 10:12:38 471

翻译 常用数据结构的时间复杂度

常用数据结构的时间复杂度Data StructureAddFindDeleteGetByIndexArray (T[])O(n)O(n)O(n)O(1)Linked list (LinkedList)O(1)O(n)O(n)O(n)Re

2016-04-21 10:43:54 7163

原创 人人都看得懂的正则表达式教程

Objective-C RegEx Categorieshttps://github.com/bendytree/Objective-C-RegEx-Categories使用说明:将 RegExCategories.h RegExCategories.m 文件拖入工程中引入头文件即可. ========================================

2016-04-21 09:44:42 2182

原创 一个简单登陆示例的MVC和MVP实现

登录示例:MVC自上篇《iOS基于MVC的项目重构》总结之后,我又思考了下面这个问题:在UIKit自身的设计中UIViewController是被当做C还是V呢?例如我们点击View上某个Button时,可能会使用调用self.navigationController的pushViewController:animated:方法来跳转到一个新的界面。在这个场景中,点击事件通

2016-04-19 15:02:44 1366

翻译 关于iOS多线程,你看我就够了

在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案例,在实际使用中感受它们的区别。还有一点需要说明的是,这篇文章将会使用 Swift 和 Objective-c 两种语言讲解,双语幼儿园。OK,let't begin!概述这篇文章中,我不会说多线程是什么、线程和进程的区别、多线程有什么用,当然我也不会说什么是串行、什么

2016-04-19 10:57:25 2156

原创 iOS 基于 MVC 的项目重构总结

关于MVC的争论关于MVC的争论已经有很多,对此我的观点是:对于iOS开发中的绝大部分场景来说,MVC本身是没有问题的,你认为的MVC的问题,一定是你自己理解的问题(资深架构师请自动忽略本文).行文过程中查阅了互联网上的大量文档,其中水平良莠不齐(最常见的就是MVC改个名就当MVVM的),当然也有许多非常有价值的参考资料,在文末会逐一列举,以供参考.iOS中的MVC和MVPCo

2016-04-19 10:53:26 1801

翻译 停止在做的16件事

奥巴马写给女儿的信:停止在做的16件事Life is short. It may feel like it takes forever sometimes, but the reality is that you live, and a short time later,you die. It happens so quickly, many people don’t ev

2016-04-19 09:07:47 675

翻译 写了 35 年代码的老程序员的最大遗憾

大约不到20年前,我处在人生十字路口上。我的第二家公司当时已经花了5年时间为出版行业打造专业图表制作软件,不过在那互联网即将大热的年代,出版商们已经逐渐向互联网领域转移,我们的业务渐渐枯竭。那时候我已经是一个有 13 年编程工作经验,而且同时有 9 年公司运营经验的综合性人才了。我不想再同时又干技术又干管理了。我的第一家公司(1985-1987年)的主要业务是打造一款电子表格程序,并有自动

2016-04-13 09:26:54 7812 2

空空如也

空空如也

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

TA关注的人

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