让自己的努力创造出价值

用户使用条款

请仔细阅读本条款,除此使用条款外,我们不时发布的适用于服务的任何法律声明(所有这些法律声明中的条款下称“额外条款”)亦构成您和我们之间关于您使用本产品的具有法律约束力的协议。如果额外条款的内容和此使用条款的内容发生任何冲突,则应以额外条款为准。

cocoaPods 创建私有库

1.创建远程索引库和私有库

在Git上创建一个XSpecs的私有索引库,用来索引以后创建的组件模块。

2.将远程索引库添加到本地

查看本地的索引库

pod repo

如果没有安装过私有仓库,应该只有一个共有索引库

privacy

隐私政策

在不影响软件使用的情况下,软件会最大限度的不获取用户的信息。因为我们坚信,“不获取是对用户隐私最好的保护方式”。

浮点数的精度

浮点数为什么会有精度问题?

计算机是用二进制来计算储存的,程序员写的十进制的小数,计算机内部只能用二进制小数来表达1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128 … 1/(2^n),所以无法绝对精准。

iOS UI人机界面设计、应用审核相关指南

以下是苹果官方英文文档

App Review 支持

App Store审核准则
App Store审核准则中文版
App Store Connect帮助
常见 App 拒绝情况

iOS UI设计交互指南
对的UI设计和不对的UI设计的对比

iOS UIKit 控件目录

指南和示例代码

相应的简体中文文档

ios7人机界面设计指南、iOS10人机界面设计指南、AppStore审核指南

百度网盘链接: 链接:https://pan.baidu.com/s/1miKfhQo 密码: u3e2

Xcode 8问题及解决方案

1.代码注释不能用

原来的代码注释选择代码,cmd+/ 即可,现在不管用了。
在终端上运行sudo /usr/libexec/xpccachectl 然后彻底退出Xcode重启Xcode,如果不可以就从启电脑。

VVDocumenter-Xcode专门写注释的插件不能用了。
Xcode自带有代码注释快捷键,option+command+/。

还可以采用代码块的方式解决这个问题。具体添加代码块的方法是,
在.m文件中写好代码块,选中,然后点击鼠标左键,不要放开,拖动到右边的code snippets面板中去。

iOS日志分析

在研发的时候,通过NSLog,断点等,都能够很好的发现和定位bug。但是如果已经提交到AppStore,或者在安装到设备上后运行崩溃,而且无法再次重现时,只能通过日志来发现和定位bug。现在说的就是怎么通过日志来定位bug。

1.日志的产生官方文档

Thrift objective C应用

Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml),并由生成的代码负责RPC协议层和传输层的实现。

Thrift官方网站英文

Thrift支持Mac OS X10.5及以上版本,iOS4及以上版本。iOS5和Mac OS10.7及以上OC开始支持ARC,自动管理Retain/release.

Thrift0.8.0不支持ARC,如果你的应用使用了ARC模式,你可以在Xcode的Targets-》BuildPhases-》COmpilSource把Thrift相关文件设置-fno-objc-arc。Thrift0.9.0开始支出ARC和非ARC,他自动适应程序的ARC和非ARC模式,不需要手动转换。

安装Thrift

ReactiveCocoa 响应式编程

ReactiveCocoa是Github开源的一款cocoa FRP 框架。

函数式编程

函数式编程是种编程范式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是 λ 演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。和过程化编程相比,函数式编程里,函数的计算可随时调用。

响应式编程

响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。

RAC中的类和方法

RACSignal和RACStream

RAC的核心是Signal,对应的类为RACSignal,它其实是一个事件源,Signal会给它的订阅者(subscribers)发送一连串的事件。有三种事件:next,error和completed。Signal可以在error或completed事件发出前发出任意多的next事件。

CocoaPods

一.作用

CocoaPods 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具。利用 CocoaPods,可以定义自己的依赖关系 (称作 pods),并且随着时间的变化,以及在整个开发环境中对第三方库的版本管理非常方便。

CocoaPods可以帮助开发者

  • 下载开源库的源代码并引入工程
  • 向工程中添加开源库使用到的framework
  • 解决开源库和开源库以及开源库和工程之间的依赖关系、检查重复添加的framework等问题
  • 可以方便更新开源库,及其相应的其他更新。

可以让开发者自动化的、集中的、直观的管理第三方开源库。为项目开发节省时间,减少繁杂。

iOS 响应链

1.Gesture Recognizers

Gesture Recognizers是在iOS3.2引入的,可以用来识别手势、简化定制视图事件处理的对象。Gesture Recognizers的基类为UIGestureRecognizer,这一个抽象基类,定义了实现底层手势识别行为的编程接口。在UIKit框架中提供了6个具体的手势识别类,用来识别常见的手势。这6个手势识别器类为:

  • UITapGestureRecognizer:用来识别点击手势,包括单击,双击,甚至三击等。
  • UIPinchGestureRecognizer:用来识别手指捏合手势。
  • UIPanGestureRecognizer:用来识别拖动手势。
  • UISwipeGestureRecognizer:用来识别Swipe手势。
  • UIRotationGestureRecognizer:用来识别旋转手势。
  • UILongPressGestureRecognizer:用来识别长按手势

Mac 下PHP环境的搭建

1.启动服务器

MacBook-Air:~ wgyp$ sudo apachectl start
Password:
MacBook-Air:~ wgyp$ sudo apachectl -v
Server version: Apache/2.2.26 (Unix)
Server built:   Dec 10 2013 22:09:38

*注意:Apache启动后,以后Mac开机Apache会自动启动。输入命令行

Git 常用命令

创建版本库

git clone <url>

克隆远程版本库,cd到那个文件夹下,就克隆到那个文件夹。

git init

初始化本地版本库

修改和提交

iPhone6S Plus 屏幕无反应

遇到同事手机屏幕点击无反应,上网搜索一下,他们提供的策略是:

1、锁屏状态下长按home键启用语音控制,然后说《 播放音乐 》,播放歌曲触摸功能恢复。

2、等待手机没电自动关机,再充电开机便可恢复触屏操作。

3、iPhone 5s连接iTunes,升级最新版本iOS系统后触屏功能将恢复。

Runtime

OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法。利用runtime机制让我们可以在程序运行时动态修改类、对象中的所有属性、方法,就算是私有方法以及私有属性都是可以动态修改的。本文旨在对runtime的部分特性小试牛刀,更多更全的方法可以参考系统API文件,

新建两个类ClassOne和ClassTwo

iOS中delegate,Notification,KVO的选择

在开发ios应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信。在IOS应用不断的出现三种模式来实现这种通信:

1.委托delegation;

2.通知中心Notification Center;

3.键值观察key value observing,KVO

因此,那为什么我们需要这些模式以及什么时候用它以及什么时候不用它。

React Native

React Native使你能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一流的原生APP。React Native着力于提高多平台开发的开发效率 —— 仅需学习一次,编写任何平台。(Learn once, write anywhere)。Facebook已经在多项产品中使用了React Native,并且将持续地投入建设React Native。

iOS 调试技巧

对于软件开发而言,调试是必须学会的技能,重要性不言而喻。对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中。不同语言、不同IDE、不同平台的调试,有同性也有个性。今天我们就来学习一下iOS开发中的调试技巧,语言暂用为OC,IDE当然是强大的Xcode。

  • 断点调试
  • NSLog调试
  • Xcode视图调试

iOS In-App Purchase

1.苹果iTunes Connect内购产品信息录入。

1)创建app内购买项目(Create New),选择类型:

1.消耗型项目

对于消耗型 App 内购买项目,用户每次下载时都必须进行购买。一次性服务通常属于消耗型项目,例如钓鱼App 中的鱼饵。

2.非消耗型项目

对于非消耗型 App 内购买项目,用户仅需要购买一次。不会过期或随使用而减少的服务通常为非消耗型项目,例如游戏App 的新跑道。

3.自动续订订阅

通过自动续订订阅,用户可以购买指定时间期限内的更新和动态内容。除非用户取消选择,否则订阅(例如杂志订阅等)会自动续订。

4.免费订阅

通过免费订阅,开发者可以将免费订阅内容放入“报刊杂志”。用户注册免费订阅后,该订阅内容将会出现在与该用户Apple ID 关联的所有设备上。请注意,免费订阅不会过期,并且仅在支持报刊杂志功能的 App 中提供。

5.非续订订阅

非续订订阅允许有时限性的营销服务。对于 App 内购买项目中的限时访问内容,就需使用非续订订阅。例如,导航App 中语音导航功能的一周订阅,或者年度订阅已存档的视频或音频的在线目录。

一定要根据自己应用的情况选择正确,不然会被App Store审核团队拒绝。应用内的虚拟币要采用消耗型的,有固定时限的会员选择自动续订订阅。也可以只选择虚拟币充值自己后台购买的情况解决会员问题。

2)生成共享密钥

多线程GCD NSThread NSOperation

在 iOS 中其实目前有 4 套多线程方案,他们分别是:

  • Pthreads
  • NSThread
  • GCD
  • NSOperation & NSOperationQueue

所以接下来,我会一一讲解这些方案的使用方法和一些案例。在将这些内容的时候,我也会顺带说一些多线程周边产品。比如: 线程同步、 延时执行、 单例模式 等等。

Pthreads

其实这个方案不用说的,只是拿来充个数,为了让大家了解一下就好了。百度百科里是这么说的:

POSIX线程(POSIX threads),简称Pthreads,是线程的POSIX标准。该标准定义了创建和操纵线程的一整套API。在类Unix操作系统(Unix、Linux、Mac OS X等)中,都使用Pthreads作为操作系统的线程。

简单地说,这是一套在很多操作系统上都通用的多线程API,所以移植性很强(然并卵),当然在 iOS 中也是可以的。不过这是基于 c语言 的框架,使用起来这酸爽!感受一下:

Objective-C

Autolayout

前言

iOS8和iPhone6发布已经过去蛮久了,广大的果粉终于迎来了大屏iPhone,再也不用纠结为大屏买三星舍苹果了…但是对于iOS开发人员来说,迎来了和Android开发开发一样的问题—>各种屏幕的适配(是不是可以要求加工资的节奏).对于适配,网传各种有关Size Class的论点,前段时间太忙,一直没去研究,套用+总的话,苹果在适配方面提供的方法做的比安卓好太多了.自己实测之后,确实很方便0.0(不过,还是想说,适配的核心始终是AutoLayout)
image

概念初探

github hexo搭建博客

[TOC]

如果你看到这篇文章说明我已经搭建成功。以前使用过的CSDN新浪博客

搭建博客需要:

  1. 安装NOde,下载安装即可。作用:用来生成静态页面的

  2. 安装Git(xcode自带Git)作用:把本地的hexo内容提交到github上去.

  3. 申请github。
  4. 安装完成后下载MarkDown编译器。Mou免费的

1. 安装前准备。