自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 iOS开发系列--数据存取

概览在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库。例如前面IOS开发系列—Objective-C之Foundation框架的文章中提到归档、plist文件存储,包括偏好设置其本质都是存储为文件,只是说归档或者plist文件存储可以选择保存到沙盒中,而偏好设置系统已经规定只能保存到沙盒的Library/Preferences目录。当然,文件存储并不作为本

2016-05-10 17:02:09 420

转载 iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

概览随着移动互联网的发展,如今的手机早已不是打电话、发短信那么简单了,播放音乐、视频、录音、拍照等都是很常用的功能。在iOS中对于多媒体的支持是非常强大的,无论是音视频播放、录制,还是对麦克风、摄像头的操作都提供了多套API。在今天的文章中将会对这些内容进行一一介绍:音频音效音乐音频会话录音音频队列服务视频MPMoviePlayerControllerMPMov

2016-05-10 16:11:12 636

转载 细说GCD(Grand Central Dispatch)如何用

文中较详细介绍GCD队列,各种GCD使用方法,实例如何使用Dispatch Source监听系统底层对象,分析不同锁的性能对比,实例GCD死锁情况。文中的Demo在这里 https://github.com/ming1016/GCDDemo 对着文章试着来调demo体会更深哦,细细嚼消化好:)GCD(Grand Central Dispatch) 介绍GCD属于系统级的线程管理,在

2016-04-02 10:28:12 401

转载 iOS开发-beginUpdates && endUpdates用法

本篇主要介绍使用beginUpdates和endUpdates方法对UITableView的Cell进行批量操作更新。首先给出过程中依赖的数据源: self.arraySections = [NSMutableArray arrayWithCapacity:0]; NSMutableArray *array1 = [NSMutableArray arrayWithObjects:

2016-03-29 10:36:21 913

转载 Swift 类构造器的使用

这几天在使用 Swift 重写原来的一个运动社交应用 SportJoin. 为什么要重写呢? 首先因为实在找不到设计师给我作图; 其次, 原来写的代码太烂了我也闲不下来, 想找一些项目做, 所以只好将原来的代码重写了. 原来的代码大约是一年半以前写的, 我现在真的不想吐槽当时写的代码有多烂, 有一句话怎么说来着: 程序员连自己写的源代码都不想读, 怎么可能看别人写的源代

2016-03-14 10:50:38 715

原创 IOS应用提交所需尺寸

https://developer.apple.com/library/ios/qa/qa1686/_index.html,苹果官方链接。综上所述,再加上新出的iphone 6 plus 180x180,总共的icon为8个,分别是:Icon.png – 57×57 iPhone (ios5/6)  [email protected] – 114×114 iPh

2016-02-20 10:32:53 380

转载 iOS自定义转场动画实战讲解

转场动画这事,说简单也简单,可以通过presentViewController:animated:completion:和dismissViewControllerAnimated:completion:这一组函数以模态视图的方式展现、隐藏视图。如果用到了navigationController,还可以调用pushViewController:animated:和popViewController

2016-02-16 08:44:33 434

转载 自定义 Core Data 迁移

自定义 Core Data 迁移似乎是一个不太起眼的话题。苹果在这方面只提供了很少的文档,若是初次涉足此方面内容,很可能会变成一个可怕的经历。鉴于客户端程序的性质,你无法测试你的用户所生成的数据集的所有可能排列。此外,解决迁移过程中出现的问题会很困难,而因为极有可能你的代码依赖于最新的数据模型,所以回退并不是一个可选的处理办法。在本文中,我们将走一遍搭建自定义 Core Data 迁移的过

2016-02-15 13:10:40 256

转载 Fetch 请求

将对象从存储中取出来的方法之一是使用 NSFetchRequest。但是请注意,一个最常见的错误是在你不需要的时候去读取数据。请确保你已经阅读并理解了获取对象一节中的内容。大多数时候,遍历关系更加有效,而使用 NSFetchRequest 往往成本很高。通常有两个原因使用 NSFetchRequest 来执行数据获取:(1) 你需要为匹配特定谓词 (predicate) 的对象搜索整个对象

2016-02-15 13:10:07 817

转载 导入大数据集

往 Core Data 应用中导入大数据集是个很常见的问题。鉴于数据的特点你可以采用以下几种方法:从 web 服务器上下载数据 (例如 JSON 数据),然后插入到 Core Data 中。 从 web 服务器上下载预先生成的 Core Data SQLite 数据库文件。 把一个预先生成好的 Core Data SQLite 数据库文件传到应用程序包中。对某些应用场景后两种选择作

2016-02-15 13:09:06 506

转载 数据模型和模型对象

本文我们将会更加深入探讨Core Data 的 models 以及 managed object 的类 。本文绝不是对 Core Data 的简单概述,而是在实际运用中鲜为人知或不易记忆却可以发挥奇效的那一部分的合集。如果你需要的是更详细的概述,那么我推荐你去看 “Apple's Core Data Programming Guid”。数据模型Core Data数据模型(储

2016-02-15 13:08:06 945

转载 用 SQLite 和 FMDB 替代 Core Data

凭良心讲,我不能告诉你不去使用 Core Data。它不错,而且也在变得更好,并且它被很多其他 Cocoa 开发者所理解,当有新人加入你的团队或者需要别人接手你的 app 的时候,这点很重要。更重要的是,不值得花时间和精力去写自己的系统去代替它。使用 Core Data 吧。真的。为什么我不使用Core DataMike Ash 写到:就个人而言,我不是个狂热粉

2016-02-15 13:07:18 260

转载 一个完整的 Core Data 应用

在这篇文章中,我们将建立一个小型但却全面支持 Core Data 的应用。此应用允许你创建嵌套的列表;每个列表的 item 都可以有子列表,这将允许你创建非常深层次的 items。为了让大家完整的了解发生了什么,我们将通过使用手动创建堆栈的方式来代替 Xcode 中 Core Data 的模板。这个应用的代码放到了 GitHub 上。我们将怎么建立?首先,我们创建一个 Persis

2016-02-15 13:05:00 259

转载 Core Data 概述

Core Data 可能是 OS X 和 iOS 里面最容易被误解的框架之一,为了帮助大家理解,我们将快速的研究 Core Data,让大家对它有一个初步的了解,对于想要正确使用 Core Data 的同学来说,理解它的概念是非常必要的。几乎所有对 Core Data 感到失望的原因都是因为对它工作机制的错误理解。让我们开始吧:Core Data 是什么?大概八年前,2005年的四

2016-02-15 13:02:58 219

转载 自定义 Collection View 布局

UICollectionView 在 iOS6 中第一次被引入,也是 UIKit 视图类中的一颗新星。它和 UITableView 共享一套 API 设计,但也在 UITableView 上做了一些扩展。UICollectionView 最强大、同时显著超出 UITableView 的特色就是其完全灵活的布局结构。在这篇文章中,我们将会实现一个相当复杂的自定义 collection view

2016-02-15 13:01:27 243

转载 iOS 7 的多任务

在 iOS 7 之前,当程序置于后台之后开发者们对他们程序所能做的事情非常有限。除了 VOIP 和基于地理位置特性以外,唯一能做的地方就是使用后台任务(background tasks)让代码可以执行几分钟。如果你想下载比较大的视频文件以便离线浏览,亦或者备份用户的照片到你的服务器上,你都仅能完成一部分工作。iOS 7 添加了两个新的 API 以便你的程序可以在后台更新界面以及内容。首先是

2016-02-15 12:47:04 335

转载 UICollectionView + UIKit Dynamics

UIKit Dynamics 是 iOS 7 中基于物理动画引擎的一个新功能--它被特别设计使其能很好地与 collection views 配合工作,而后者是在 iOS 6 中才被引入的新特性。接下来,我们要好好看看如何将这两个特性结合在一起。 这篇文章将讨论两个结合使用 UIkit Dynamics 和 collection view 的例子。第一个例子展示了如何去实现像 iOS 7

2016-02-15 12:44:26 293

转载 初识 TextKit

iOS 7 的发布给开发者的案头带来了很多新工具。其中一个就是 TextKit。TextKit 由许多新的 UIKit 类组成,顾名思义,这些类就是用来处理文本的。在这里,我们将介绍 TextKit 的来由、它的组成,以及通过几个例子解释开发者怎样将它派上大用场。但是首先我们得先阐明一个观点:TextKit 可能是近期对 UIKit 最重要的补充了。iOS 7 的新界面用纯文本按钮替换了大

2016-02-15 12:43:01 202

转载 自定义 Formatters

我们希望有一种快速的一次性的解决方案,可以把数据格式化为一种易读的格式。Foundation 框架中的就有 NSFormatter 可以很好地胜任这个工作。另外,在 Mac 上,Appkit 已经内建了 NSFormatter 的支持。内建格式器Foundation 框架中的 NSFormatter 是一个抽象类,它有两个已经实现的子类:NSNumberFormatter 与 NS

2016-02-15 11:50:12 422

转载 字符串渲染

在本期中我们已经讨论了很多关于字符串不同的话题,从编码到本地化再到语法分析。但多数情况下,字符串最终还是需要被绘制到屏幕上供用户查看、交互。这篇文章涵盖了最基本、最好的练习,以及在用户界面上呈现字符串可能遇到的常见陷阱。如何将字符串绘制到屏幕上简单起见,我们先看看 UIKit 在字符串渲染方面为我们提供了哪些控件。之后我们将讨论一下对于字符串的渲染,iOS 和 OS X 系统中有哪

2016-02-15 11:40:24 260

转载 字符串解析

在几乎每一种计算机程序语言中,解析字符串都是我们不得不面对的问题。有时这些字符串以一种简单的格式出现,有时它们又变得很复杂。我们将利用多种方法把字符串转换成我们需要的东西。下面,我们将讨论正则表达式、扫描器、解析器以及在什么时候使用它们。正则法 vs. 上下文无关文法(Context-Free Grammars)首先,介绍一点点背景知识:解析一个字符串,其实就是用特定的语言来描述它

2016-02-15 11:33:10 1249

转载 玩转字符串

在每个应用里我们都大量使用字符串。下面我们将快速看看一些常见的操作字符串的方法,过一遍常见操作的最佳实践。字符串的比较、搜索和排序排序和比较字符串比第一眼看上去要复杂得多。不只是因为字符串可以包含代理对(surrogate pairs )(详见 Ole 写的这篇关于 Unicode 的文章) ,而且比较还与字符串的本地化相关。在某些极端情况下相当棘手。苹果文档中 Strin

2016-02-15 11:23:33 314

转载 NSString 与 Unicode

当你在处理文本时,如果你不是在写一些非常古老的代码(legacy code),那么你一定要使用 Unicode。幸运的是,苹果和 NeXT 一直致力于推动 Unicode 标准的建立,而 NeXT 在 1994 年推出的 Foundation Kit 则是所有编程语言中最先基于 Unicode 的标准库之一。但是,即使 NSString 完全支持 Unicode,还替你干了大部分的重活儿,

2016-02-15 11:21:53 201

转载 XCTest 测试实战

差不多四个月以前,我们团队 (Marco, Arne 和 Daniel) 开始着手为我们的新应用写模型层。我们想在开发中使用测试,经过一番讨论之后,我们选择 XCTest 作为我们的测试框架。目前为止,我们的编码库已经纵横 190 个文件和 18,000 行代码,达到了 544 kB。我们测试部分的代码现在差不多有1,200 kB,大概有被测试代码的两倍。虽然我们还没有完全结束这个项目,但

2016-02-15 11:17:36 779

转载 基于 OpenCV 的人脸识别

一点背景知识OpenCV 是一个开源的计算机视觉和机器学习库。它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包。根据这个项目的关于页面,OpenCV 已被广泛运用在各种项目上,从谷歌街景的图片拼接,到交互艺术展览的技术实现中,都有 OpenCV 的身影。OpenCV 起始于 1999 年 Intel 的一个内部研究项目。从那时起,它的开发就一直很活跃。进化到现在

2016-02-15 11:14:45 658

转载 GPU 加速下的图像视觉

越来越多的移动计算设备都开始携带照相机镜头,这对于摄影界来说是一个好事情,不仅如此携带镜头也为这些设备提供了更多的可能性。除了最基本的拍摄功能,结合合适的软件这些更为强大的硬件设备可以像人脑一样理解它看到了什么。仅仅具备一点点的理解能力就可以催生一些非常强大的应用,比如说条形码识别,文档识别和成像,手写文字的转化,实时图像防抖,增强现实等。随着处理能力变得更加强大,镜头保真程度更高,算法效

2016-02-15 11:13:22 575

转载 GPU 加速下的图像处理

Instagram,Snapchat,Photoshop。所有这些应用都是用来做图像处理的。图像处理可以简单到把一张照片转换为灰度图,也可以复杂到是分析一个视频,并在人群中找到某个特定的人。尽管这些应用非常的不同,但这些例子遵从同样的流程,都是从创造到渲染。在电脑或者手机上做图像处理有很多方式,但是目前为止最高效的方法是有效地使用图形处理单元,或者叫 GPU。你的手机包含两个不同的

2016-02-15 11:10:55 781

转载 Core Image 介绍

这篇文章会为初学者介绍一下 Core Image,一个 OS X 和 iOS 的图像处理框架。如果你想跟着本文中的代码学习,你可以在 GitHub 上下载示例工程。示例工程是一个 iOS 应用程序,列出了系统提供的大量图像滤镜以供选择,并提供了一个用户界面用来调整参数并观察效果。虽然示例代码是用 Swift 写的 iOS 程序,不过实现概念很容易转换到 Objective-C 和

2016-02-15 11:09:16 216

转载 照片扩展

在 iOS 8 发布时,苹果把六种全新扩展功能介绍给全世界,它们史无前例的提供了访问操作系统的可行性。现在,开发者可以利用照片扩展来为系统相机应用增加功能。用户使用照片编辑扩展的流程并不简单。从选择编辑的照片开始,需要点击三次才能启动,其中一步骤是非常小一个按钮:然而,这类扩展给开发者提供了为用户创造无缝体验,创建一致的方法来管理照片的绝佳的机会。本文在了解更详细的

2016-02-15 11:07:33 428

转载 照片框架PhotoKit

介绍每天,用 iPhone 拍摄的照片数量超过了任何相机。每年 iOS 设备上的显示效果变得越来越好,回到 iPad 刚出现还没有 Retina 显示屏的时代,大屏幕的杀手级功能之一就是可以展示用户照片和浏览器照片库。自从相机成为 iPhone 最重要和最受欢迎的功能开始,对能管理和加工用户照片库中宝贵的照片的应用程序和工具就有着巨大的需求。直到 2014 年夏天前,开发者只能

2016-02-15 11:05:34 321

转载 iOS 上的相机捕捉

第一台 iPhone 问世就装有相机。在第一个 SKDs 版本中,在 app 里面整合相机的唯一方法就是使用 UIImagePickerController,但到了 iOS 4,发布了更灵活的 AVFoundation 框架。在这篇文章里,我们将会看到如何使用 AVFoundation 捕捉图像,如何操控相机,以及它在 iOS 8 的新特性。概述AVFoundation v

2016-02-15 11:04:22 1015

转载 图片格式

数据存储在计算机上存储文本很容易。我们以字母或字符作为一个基本单元,建立了一个从数字到字符编码的简单映射来进行编码。图形信息则不同,有很多不同的方式来表示图像,每种方式的优点和缺点也都各有不同。文本是线性且一维的。撇开文字方向的问题,我们只需要知道序列中的下一个元素是什么就可以有效的存储文字。图像则更复杂。首先,它们是二维的,所以我们需要考虑如何表示图像中某个特定位置的值。

2016-02-15 11:02:51 335

转载 相机工作原理

轻轻一按,你的相机就把光子转换为了比特。于是一张相片就保存到了你的 iPhone 里。让我们假设一下你身处室外,环顾四周。三亿里之外,太阳无时无刻不在发射光子。它们需要花上 8 分钟之久才能到达我们舒适的星球。有一些光子撞击到你周围的物体,并反射到你眼睛的视网膜上,这会使你的大脑以这些物体为基准,创建一副图像,我们将其称之为视觉。摄影要做的就是捕获这幅图像。摄影是在 200 年前被

2016-02-15 10:57:12 321

转载 音频 API 一览

iOS 和 OS X 平台都有一系列操作音频的 API,其中涵盖了从低到高的全部层级。随着时间的推移、平台的增长以及改变,不同 API 的数量可以说有着非常巨大的变化。本文对当前可以使用的 API 以及它们使用的不同目的进行简要的概括。Media Player 框架Media Player 框架是 iOS 平台上一个用于音频和视频播放的高层级接口,它包含了一个你可以在应用中直接使用

2016-02-15 10:53:43 441

转载 音频处理的狗屋

我不知道这种观念是不是普遍的,但在北美,一个年轻而有抱负的木匠典型的项目是建立一个狗屋;当孩子对建筑变得好奇,想要反复折腾锤子,水平尺,锯子时,他们的父母会指导他们做一个狗屋。在很多方面,狗屋对热情的新手来说是理想的项目。项目大小足以鼓舞人心,但也足够简单以避免孩子恰好搞砸了或中途就失去兴趣造成惨败的结果。狗屋作为一个入门项目是很有吸引力的,因为它是一个微型“全集”。它需要设计,规划,工程和手工制

2016-02-15 10:51:00 716

原创 常浏览的博客和网站

网站系列objcio.cncocoachina.comcode4app.com泰然网博客系列唐巧地球人都知道哈。http://blog.devtang.com/巧哥新出书了,速度入手吧。虾神地球人都知道系列二。http://blog.txx.im/?from=inf&wvr=5&loc=infblog(话说你们晓得虾神年纪多大么?反正

2016-02-15 10:43:52 198

转载 视频工具箱和硬件加速

在 OS X 和 iOS 设备上进行视频解码的过程是比较复杂的。为了详细了解编解码过程中所发生的事情,我们首先要了解一些基本概念。这样才能去挖掘具体的实现细节。Mac 硬件加速解码的简史用 CPU 处理视频的代价非常昂贵,而且编解码器也非常复杂。软解码的流行是具有革命意义的。随着 90 年代早期 QuickTime 1.0 和它的基于 C 语言的 API 的出现,你可以播放

2016-02-15 10:39:01 977

转载 Core Image 和视频

在这篇文章中,我们将研究如何将 Core Image 应用到实时视频上去。我们会看两个例子:首先,我们把这个效果加到相机拍摄的影片上去。之后,我们会将这个影响作用于拍摄好的视频文件。它也可以做到离线渲染,它会把渲染结果返回给视频,而不是直接显示在屏幕上。两个例子的完整源代码,请点击这里。总览当涉及到处理视频的时候,性能就会变得非常重要。而且了解黑箱下的原理 —— 也就是 Core

2016-02-15 10:30:55 442

转载 在 iOS 上捕获视频

随着每一代 iPhone 处理能力和相机硬件配置的提高,使用它来捕获视频也变得更加有意思。它们小巧,轻便,低调,而且与专业摄像机之间的差距已经变得非常小,小到在某些情况下,iPhone 可以真正替代它们。这篇文章讨论了关于如何配置视频捕获管线 (pipeline) 和最大限度地利用硬件性能的一些不同选择。 这里有个使用了不同管线的样例 app,可以在 GitHub 查看。UIIma

2016-02-15 10:26:00 422

转载 IOS Core Animation Advanced Techniques的学习笔记(五)

第六章:Specialized Layers类别用途CAEmitterLayer用于实现基于Core Animation粒子发射系统。发射器层对象控制粒子的生成和起源CAGradientLayer用于绘制一个颜色渐变填充图层的形状(所有圆角矩形边界内的部分)

2016-02-15 09:53:20 306

空空如也

空空如也

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

TA关注的人

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