自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 oc基础知识之类的定义

在Objective-C中,每个类的定义包括两个部分:接口(interface)和实现(implementation)。接口部分定义在.h文件中,包含类的声明、属性、实例变量以及方法,主要作用是对外提供访问接口;实现部分定义在.m文件中,主要用于方法的具体功能实现。这种定义类的方法,好处在于将公共声明(接口)与代码实现分开,对外屏蔽了功能实现的细节,体现了面向对象的封装特性。1、类定义

2016-10-17 17:22:22 548

转载 如何设计一个自动布局库:以SDAutoLayout为例

前言:SDAutoLayout 在发布之后受到了众多iOS开发者的青睐和支持,不到半年时间内在GitHub上已经获得2000+star,同时被众多公司和个人开发者作为开发首选自动布局库。现在,以SDAutoLayout为例简单介绍一下如何设计一个自动布局库。       所谓自动布局,其实就是将手动布局的计算过程抽象出一套算法,然后利用约束模型收集view的宽高左右等各个维

2016-04-16 09:12:49 720

转载 iOS开发之友盟推送配置教程

iOS开发之友盟推送配置教程 引子: 整理电脑文件的时候发现了以前写给朋友的一篇关于友盟推送的简易教程,现在发布到博文中,希望对有需要的人有用。 开发环境及语言: Xcode7.X、Objective-C 1、创建一个项目。1-1(Xcode7.X 配置https网络请求)1-2 集成友盟推送SDK,我这边集成的是UMessage_Sdk_1.2.3。版

2016-04-14 11:23:29 3082

转载 iOS开发-由浅至深学习block

关于block在iOS 4.0之后,block横空出世,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调。这不免让我们想到在C函数中,我们可以定义一个指向函数的指针并且调用:12345bool executeSomeTask(void) {    //do somethin

2016-04-14 09:31:02 431

转载 Xcode使用介绍之八:快捷代码段(code snippets)

快捷代码段(code snippets)是Xcode提供的一种可以快速输入大段代码的快捷方式,你可以通过属于一个特定的快捷方式,对应一大段代码,可以大大提升代码编写的速度。对于一些需要经常反复使用的代码,可以设置一个code snippets。1、如何创建代码段打开Xcode,选中CodeSnippets,如下图所示在编辑区中,选中一段代码,然后拖动到Code

2016-04-13 16:57:01 1560

转载 Xcode使用介绍之七:常用插件

古人云“工欲善其事必先利其器”,打造一个强大的开发环境,是立即提升自身战斗力的绝佳途径!Xcode虽然功能强大,但是借助一些辅助插件可以极大的提升开发效率。1、Xcode插件管理工具–Alcatraz的安装Alcatraz是针对Xcode的一款插件管理器,通过Alcatraz可以非常方便的管理插件,包括安装、删除、升级等操作。官方网站安装方法一(推荐):

2016-04-13 16:54:14 353

转载 Xcode使用介绍之六:常用快捷键

Xcode提供了很多快捷键,灵活使用快捷键可以提升开发效率。但对于初学者来说,一次性的去记住并掌握如此多的快捷键显然是不现实的,本文就是来帮助大家了解在iOS开发过程中,使用最频繁的一些快捷键。1、编辑类快捷键注释掉某行/取消注释某行:command + /调整代码到推荐位置:control + i代码整体向上移动:首先选中需要移动的代码段,使用快捷键向上移动:command

2016-04-13 16:52:46 396

转载 聚合数据API用法简介

IOS API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。下面介绍一个聚合数据API的使用方法.1.注册 2.选择需要的API聚合数据有多种不同的数据API接口,可以根据需要选择

2016-04-13 16:49:53 8673

转载 RTImageAssets:自动生成全尺寸icon以及2x/3x图片

由于Retina屏幕的存在以及5.5寸iPhone的面世,对于UI设计师来说,在为App切图的工作中,工作量成倍增加,为了适配各种屏幕,需要切1x、2x、3x一共三套不同规格的图。本文为大家介绍的RTImageAssets插件可以大大减少App开发中切图的工作量,提升开发效率.1、RTImageAssets的下载请在Github中下载最新版本的RTImageAssets。

2016-04-13 16:46:13 1497

原创 Reveal逆向工程:分析任意iOS应用的UI界面

在iOS逆向工程中,Reveal扮演着重要角色,一般情况下,Reveal在iOS开发过程中可以分析UI界面的状态,同样也可以应用于分析其他任意的App。特别是对于初学者来说,去了解其他优秀App的界面搭建,对于提升开发能力也有极大帮助。Video Player1、准备工作在使用Reveal分析他人的app之前,请确保如下条件具备:一台能够越狱的iPhone,最好是iOS

2016-04-13 16:42:23 1123

转载 Xcode使用介绍之五:初识UI控件

iOS开发中,需要使用到各种各样的UI控件,根据苹果官方的分类,UI控件一共分为4类,即栏目类(Bars)、内容视图类(content views)、控制类(controls)、临时视图类(temporary views)。1、栏目类(Bars)常用的Bars类有:状态栏 Status Bar导航栏 Navigation Bar工具栏 Tool Bar工具栏与导航栏按钮

2016-04-13 16:40:47 2530

转载 Xcode使用介绍之四:自动布局初体验

苹果自推出iPhone6之后,常见的屏幕的尺寸已经增加到4种,包括3.5寸、4寸、4.7寸和5.5寸,另外有时还需要考虑横屏状态下的显示效果。为了适配不同尺寸的界面布局,Xcode中引入了自动布局技术。自动布局通过控件与控件之间的“约束”关系,来确定一个控件在界面中的绝对位置和大小。基于自动布局,开发者只需要完成一次布局,即可适配所有尺寸的iPhone机型。一、自动布局简介Xc

2016-04-13 16:35:44 1600

转载 Xcode使用介绍之三:程序调试

Xcode提供了完整的程序调试功能,通过Xcode的调试功能,可以定位程序Bug,同时可以查看应用运行时对手机资源的消耗情况,便于程序员对程序进行代码优化。一、App运行状态监控App运行后,可以对手机CPU、内存、电池、硬盘、网络的使用状态进行监控,从而为程序优化提供数据分析支撑。双击某个指标,即可查看该指标的详细信息。二、UI界面分析

2016-04-13 16:34:11 561

翻译 Xcode使用介绍之二:创建UI界面+连线

本文主要介绍如何使用Xcode搭建UI界面,以及如何使搭建的界面与代码进行关联。运行环境:Xcode7.1 + iOS9.1程序语言:Objective-C运行示例:一、使用Xcode搭建可视化界面Xcode提供了两种可视化搭建界面的方法,即storyBoard以及xib:StoryBoard:扩展名为.storyboard的文件,一般包

2016-04-13 16:32:16 9989

转载 Xcode使用介绍之一:Xcode简介+创建App应用

本文主要介绍苹果开发工具Xcode的基本使用,包括界面功能介绍以及如何使用Xcode创建App应用。运行环境:Xcode7.1 + iOS9.1程序语言:Objective-C一、Xcode简介Xcode是苹果官方的集成开发环境IDE,开发者可以使用其开发基于iPhone,iPad,Apple Watch以及Mac平台的应用。Xcode具有如下特点:一站

2016-04-13 16:30:31 7832

翻译 Reveal高级技巧(越狱设备)

Reveal是一个很强大的UI分析工具,与其他几个功能相近的工具(比如PonyDebugger)相比,其最大的特点就是非常直观,用来查看app的UI布局非常方便。其常规用法是将framework集成至Xcode工程中,可参见Reveal的官网http://revealapp.com/,但我们这次讲述的却是非常规用法。在12/21的#阿里技术嘉年华#上,我给听众展示了使用Reveal查看任意

2016-04-13 16:27:16 1217

翻译 iOS 系统应用调用: 电话、短信息、邮件

我们在很多的App上面都会发现,你可以直接通过某个按钮拨打特定的电话号码,或者给某个人发送信息,本节就给大家讲解一下如何实现这些功能。一、打电话在程序内调用系统打电话,我们可以通过UIWebView实现创建一个webView //通过UIWebView实现 UIWebView *phoneWV = [[UIWebView alloc] initWithF

2016-04-12 13:48:34 440

转载 iOS相机相册调用 — UIImagePickerController

在iOS开发中如果要调用相机拍取照片或者是直接获取相册中的照片,那么调用UIImagePickerController是个不错的选择。UIImagePickerController继承于UINavigationController,使用代理方法时需要同时遵守这两个控制器的协议,它不仅可以用来选取图片,其实它的还能用来拍摄视频。1.UIImagePickerController简介

2016-04-12 13:39:50 7051

翻译 Block(块)介绍之五:系统框架中的Block

Apple定义的系统框架的API中,对Block的使用也比较集中,主要在动画、通知等等几个方面,因此,对于普通开发者来说,重点掌握系统框架API中Block的使用也是比较有必要的。1、系统框架API中的Block在iOS4以后,越来越多的系统级的API在使用Block。苹果对于Block的使用主要集中在如下几个方面:完成处理–Completion Handlers通知处

2016-04-12 10:25:27 615

翻译 Block(块)介绍之四:回调CallBack

在iOS的开发过程中,Block的回调使用非常普遍,也是Block的重要用法之一。例如,当一段动画播放完成后,执行一段代码,当得到请求的网络数据后,执行一段对数据的操作代码等等。这些场景中,都使用到了Block的回调机制。Block的回调机制,可以使代码的编写变得十分的清晰,提升了代码的可读性。1、定义带Block参数的方法创建一个Task类,继承自NSObject;在.h文件

2016-04-12 10:23:56 488

翻译 访问Block之外定义的变量

在使用Block时,经常会涉及到修改Block定义之外的对象,为了能够修改定义在Block之外的对象,必须在该对象声明时,添加__Block关键字(两个下划线)。1、访问Block之外的对象如果在一个方法中声明了块,那么块中也可以访问在该方法中定义的变量;前提是该变量的定义在块定义之前。如下所示:-(void)touchesBegan:(NSSet *)touches wi

2016-04-12 10:22:18 235

翻译 Block的简单使用

定义Block时,可以对Block的输入参数以及返回值的类型进行定义。可以有输入参数,也可以没有输入参数;可以设置一个输入参数,也可以设置多个参数;可以有返回值,也可以没有返回值。1、无输入参数+无返回值这种形式的Block,无需任何输入参数,并且无返回值,一般都是在该Block中完成一些动作,例如在完成一段动画后,执行一段Block,如下所示:@interface UIV

2016-04-12 10:19:38 515

转载 AMScrollingNavbar框架(自动隐藏导航栏)使用简介

AMScrollingNavbar框架是一个可以上拉隐藏导航栏和下拉显示导航栏的框架,这个开源框架的调用也很简单,本章节就给大家介绍一下这个框架的用法。一、下载及导入框架AMScrollingNavbar在下载框架的时候大家需要注意一下,选择V1.x,否则下载的是swift的版本,如下图:下载好以后,大家只需要将下图中的两个文件引入所需工程即可:

2016-04-11 10:07:05 1832

转载 《搬进 Github》欣赏之五-团队合作流程

Github 多年来总结出来一套自己的团队协作流程,简单而且强大,叫做 Github Flow ,网站上的各个功能都是围绕着这个流程来开发的。要了解一个流程,没有什么比跑一个最简单的实际例子更好的方式了,官方给出的Hello World就是服务于这个目的,不过这个 Hello World 用的是纯粹的网页来实现整个流程。咱们今天用网页配合 Github For Mac 客户端来完成这个流程。

2016-04-11 09:20:21 267

转载 《搬进 Github》欣赏之四-合并分支

新的一天开始。比如昨天我在一个 idea 分支上实现了一个想法,今天我想把这些代码放回 master 分支,这就涉及到了两个分支合并的技巧。今天找几种实际情形,看看合并分支都有那些应用。一、本地两个分支合并先从最简单的一种情况着手。现在项目只有一个 master 分支,我来新建一个 idea 分支,实现自己的想法,commit 一下。那现在仓库内的情况就是这样的

2016-04-11 09:18:45 520

转载 《搬进 Github》欣赏之三-简单分支操作

一、分支介绍仓库创建后,一旦有了新 commit,默认就会放到一个分支上,名字叫 master。前面咱们一直看到的多个版本组成的一条历史线,就是 master 分支。但是一个仓库内,用户可以自己创建其他的分支,可以有多条历史线。说说 master 这个名字,一般中文叫“主分支”,其实从技术底层来讲它跟其他我们自己要创建的分支没有区别,只不过它是天生的默认分支。实际工程项目中会人为的给它一个

2016-04-11 09:17:27 296

转载 《搬进 Github》欣赏之二-Github For Mac 客户端

一、登录先说说什么是 git 。git 是一套命令行工具,由下面这些“子命令”组成。虽然最常用的只不过是其中很小的一部分,但是要学会命令行中使用 git 还是有一定难度的,一来是命令行 shell 本身的操作可能很多朋友就不熟悉。另外,即使对熟悉命令行的朋友,直接上手 git 也会因为一下子暴露在很多版本控制的新概念中而感到非常陡峭的学习曲线。所以命令行操作咱们往后放一放。

2016-04-11 09:15:48 272

转载 《搬进 Github》欣赏之一-浏览器中使用 githubb

一、注册来到 http://github.com 的首页,就可以看到下面的注册界面:填写自己的用户名邮箱,再设置一个妥妥的密码,点击“Sign up for Github”按钮,世界就属于你了。对于开源项目 github 是免费的,所以不用管付费相关的内容。接下来初次注册的用户会看到一共四步的 github 使用教程。今天主要介绍第二步,其他几步回头另行介绍

2016-04-11 09:12:45 923

翻译 Coredata — 入门使用

CoreData的底层实现虽然是使用的sqlite数据库,可是CoreData在使用起来可是和sqlite大相径庭,可能你会发现你连一句sql语句都不要写。CoreData存在于应用程序和持久化存储区之间,扮演了桥梁的角色,将托管的对象映射到持久化存储区当中。1.设置上下文在代码开始之前还需要添加CoreData框架,并在合适的地方引入头文件: // 从应用程

2016-04-09 14:45:22 2901

翻译 CoreData

iOS开发过程中避免不了数据持久化存储的问题,在iOS 5.0之后,苹果公司为iOS开发人员提供了一个框架,那就是CoreData框架(注意,CoreData只是个框架,并不是数据库)。CoreData最大的优点就是可以将普通的数据当成“程序猿”们最喜欢的对象来操作,而不必去在意数据在磁盘上的存储方式,并且CoreData可以合理的管理内存,使用起来更加高效,这简直就是程序员的福音啊。

2016-04-09 14:42:51 1863

翻译 FMDB(一)— 简介

在iOS开发过程中经常会用到数据库方面的操作,可是iOS原生的SQLite API使用起来并不十分友好,对于C语言基础较薄弱的朋友来说,使用起来可能会觉得比较不便。于是,一些第三方的对SQLite API进行封装的库就这么出现了,例如本文所要介绍给大家的FMDB。1.FMDB简介什么是FMDBFMDB是iOS平台的SQLite数据库框架FMDB以OC的方式封装了

2016-04-09 14:34:33 2159

翻译 SQLite 3 使用介绍

SQLite是一款轻型的嵌入式数据库,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就足够了。它的处理速度比Mysql、PostgreSQL这两款著名的数据库都还快。SQLite提供的是一些C函数接口,你可以用这些函数操作数据库。通过使用这些接口,传递一些标准 sql 语句(以 char * 类型)给 SQLite函数,SQLite就会为你操作数据库。1.SQLite 3简

2016-04-09 14:10:57 5561

翻译 iOS数据持久化 归档

归档(序列化),把对象转为字节码,以文件的形式存储到磁盘上;程序运行过程中或者当再次打开程序的时候,可以通过解归档(反序列化)还原这些对象。只要遵循了NSCoding协议的对象都可以通过它实现序列化,由于绝大多数支持存储数据的Foundation和Cocoa Touch类都遵循了NSCoding协议,因此,对于大多数类来说,归档相对而言还是比较容易实现的。1.Foundation框架中

2016-04-09 14:05:11 431

翻译 iOS数据持久化 偏好设置

1.偏好设置简介用NSUserDefaults存储的数据下次程序运行的时候依然存在,那么它把数据存储在什么地方了呢?其实它存储在应用程序内置(沙盒)的一个plist文件里,这个可以根据路径看到。既然它是存储在一个plist文件里的,那么它自然也就是以键值对的方式存在的,它的存储形式其实就是一种XML格式的文件:2.偏好设置的使用保存数据使用偏

2016-04-09 13:59:03 2504

转载 iOS 数据持久化 — Plist

1.手动创建一个plist文件这种方式创建的plist文件非常自由且直观,我们可以创建多个plist,根据功能进行分类存储,并且可以通过Xcode的可视化工具进行可视化的修改。首先,我们新创建一个文件,在Resource中选择 Property List文件:使用Xcode可视化工具,向plist文件中添加一些数据:通过代码,我们来查看一下刚刚我们添加的数据

2016-04-09 11:54:47 435

翻译 iOS开发之网络编程:Socket网络编程

一、Socket原理套接字(socket)概念套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题

2016-04-09 10:52:51 875

翻译 iOS开发之网络编程:常用网络协议

一、网络协议看了上面那句不明所以得话,好像并没有什么luan用。在第一章有提过协议这个概念,就像咱们工作的时候,签的协议,生活中的保单协议,都需要双方同意签字,才能生效。基于网络的应用就决定了数据链上不仅仅只有客户端(应用)这一环,还需要有服务器(数据源)这一环。那我们的应用在与服务器交互的时候,服务器凭什么接收你的请求,发送给你想要的数据呢?除非你接受了它的协议,比如咱们之前做Get,P

2016-04-09 10:45:40 2320

翻译 CocoaPods的简介及安装和使用

一、CocoaPods是什么?当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要 使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之小编的意思就是,手动一个个去下载所需 类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载

2016-04-09 10:33:10 268

翻译 iOS开发之网络编程:AFNetworking3.0使用简介

一、AFNetworking的集成目前使用人数最多的第三方网络库,没有之一。从开始的NSURLConnection到现在的NSURLSession,它都一直保持着与苹果的步调一致,而由它也衍生出大量的相关第三方网络功能库,不仅仅因为他的可靠,好用,一直保持着维护更新,也是为什么它这么受到广大程序员的青睐。下面先来给我们的工程集成AFNetworking(这里用的是cocoaPods

2016-04-09 10:16:00 359

翻译 iOS开发之网络编程:常用网络内部类(NSURLSession)

一、NSURLConnection我们在前面几节介绍过NSURLConnection发送请求的几种方法,除了同步请求直接获取data,异步请求的以block回调的形式来获取data,NSURLConnection还可以采用代理方法来获取data,方法有点类似XML的sax解析。请求的创建和以前一样,这一节我采用的是Post请求。 // 1.获取请求网址 NSURL *url

2016-04-09 10:09:58 543

空空如也

空空如也

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

TA关注的人

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