
iphone
码农老关【关东升】
关东升,国内著名技术专家,架构师,项目经理、技术顾问,技术图书作家,51CTO学院金牌讲师。
擅长技术:
移动开发、前后端技术、游戏开发、数据库开发与设计、软件架构设计等多种IT技术。
20多年教学经验:
教授近万名学员,近期为中国移动、中国联通、南方航空、中石油、工商银行、平安银行和天津港务局等企事业单位授课。
著有50本多部畅销书:
《看漫画学Python》
《看漫画学Python2》
《极简ChatGPT: 如何利用AI提高办公效率》
《极简ChatGPT:如何利用AI实现Python自动编程》
《AI时代程序员开发之道:ChatGPT让程序员插上翅膀》
展开
-
《iPhone与iPad开发实战——iOS 经典应用剖析》出版在即,敬请期待
《iPhone与iPad开发实战——iOS 经典应用剖析》出版在即,敬请期待作者:关东升 赵志荣出版社:机械工业出版社目录第1章 开篇综述1.1iOS概述1.2App Store1.3iOS应用程序分类1.3.1实用性应用场景1.3.2效率性应用场景1.3.3沉浸式系统应用场景1.4 HIG和什么是好的iOS应用 1.5 xcode的安装1.原创 2011-10-20 16:17:46 · 2130 阅读 · 0 评论 -
总结Objective-C特点
Objective-C与其它面向对象有这明显的不同,它有这自己鲜明的特色,下面我们从这个方法介绍它的特点:兼容性、字符串、类、方法、属性、协议和分类。1. 兼容性Objective-C可以说是一种面向对象的C语言,在Objective-C的代码中可以有C和C++语句,它可以调用C的函数,也可以通过C++对象访问方法。2. 字符串Objective-C通常不使用C语言风格的字符串。大原创 2011-11-15 17:16:22 · 4373 阅读 · 0 评论 -
objectC 数据类型转换
按照数据类型占用存储不同可以自动类型转换或强制类型转换,总的原则是小存储容量数据类型可以自动转换成为大存储容量数据类型。不同类型数据间按照下面关系的从左到右(从低到高)自动转换,_Bool、char、short int、枚举类型 -> int ->long int->long long-> float -> double -> long double。如果这些数据类型进行混合运算,运算原创 2011-11-17 09:04:53 · 2632 阅读 · 0 评论 -
object C 数据类型
Objective-C数据类型可以分为:基本数据类型、对象类型和id类型。基本数据类型有:int、float、double和char类型。对象类型就是类或协议所声明的指针类型,例如:NSAutoreleasePool * pool,其中NSAutoreleasePool是一个类,NSAutoreleasePool *是它指针类型。id类型可以表示任何类型,一般只是表示对象类型,不表示基本数据类型,原创 2011-11-17 09:06:06 · 3002 阅读 · 0 评论 -
我的appstore新游戏--LeBallon 拿码了
LeBallon下载地址:http://itunes.apple.com/us/app/leballon/id481655887?mt=8推广码:P74AYPXA3RWY XEAA7797YPXH EAML94AJ4AEE HRHKKYXFN4F4 YFNKEJTL4KELLeBallon是一个虚拟气球游戏,我们在手机上给你一个虚拟的气球,让你感觉到身临原创 2011-11-23 12:08:11 · 1903 阅读 · 0 评论 -
触动人心:如何设计优秀的iPhone应用
在海量的应用里面如何脱颖而出成为了设计师们永远不变的话题,今天从用户使用的角度给大家介绍一下如何设计一款优秀的iphone应用。用户是如何使用iPhone应用的啊!美丽的梦!温情的iPhone应用设计师的美梦!每当用户沉浸于他设计的应用之中时,设计师就像梦见自己沐浴着阳光在漫步。我们的指尖在屏幕上滑动、点击、缩放、旋转、轻拂,就像芭蕾舞女那优美的脚步。我们很快就理解了屏幕上的每个图标、每个转载 2011-11-05 09:03:31 · 1746 阅读 · 0 评论 -
SBJson (aka json-framework)
SBJson (aka json-framework)JSON (JavaScript Object Notation) is a light-weight data interchange format that's easy to read and write for humans and computers alike. This library implements strict JS转载 2011-11-07 10:28:08 · 2090 阅读 · 0 评论 -
JSON介绍
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language,Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包转载 2011-11-07 10:29:31 · 1787 阅读 · 0 评论 -
IPhone之AVAudioRecorder
#import 需要引入 //获取document目录的路径- (NSString*) documentsPath { if (! _documentsPath) { NSArray *searchPaths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask,原创 2011-11-07 21:49:23 · 3356 阅读 · 0 评论 -
使用subversion管理iOS源代码
使用subversion管理iOS源代码 1、安装和配置subversion服务器 在windows 服务器上安装VisualSVN-Server,下载地址http://www.visualsvn.com/server/download/。采用默认安装,安装完成创建一个服务器的代码仓库hello,如图所示。然后在Users右键创建用户tony,再回到hello仓库右原创 2012-03-28 09:26:48 · 2395 阅读 · 0 评论 -
使用github管理iOS分布式项目开发
使用github管理iOS分布式项目开发 在我们iOS项目开发过程中, 我们的团队成员都是分散的、分布式,这个项目管理带来了挑战。Git是一个能够进行版本管理的软件,它是cvs和svn的未来。下面我根据我们的经验总结一些心得如下:1、创建github账户2、创建代码仓库3、在xcode中添加项目到github4、创建组织和团队5、其他队员clone项目 创建gi原创 2012-03-28 16:13:07 · 6279 阅读 · 0 评论 -
使用github管理Eclipse分布式项目开发
使用github管理Eclipse分布式项目开发 老关我在前面的博文(github管理iOS分布式项目开发)中介绍了github管理iOS分布式开发,今天老关将向大家介绍使用github管理Eclipse分布式项目。事实上我们的516inc团队这在开发一个多移动平台项目,除了iOS平台还有Android和Window Phone 7平台,使用github管理我们Android项目,其实就是原创 2012-04-02 18:27:30 · 7016 阅读 · 1 评论 -
《iPhone与iPad开发实战—iOS经典应用剖析》连载四
3.3.2 视图翻转动画点击主视图右下角的按钮,主视图会翻转到背后视图,在背后视图点击Done按钮可以返回到主视图。在iOS中这是一种视图跳转的方式,同时还伴有动画效果。在本应用中采用的是,通过一个根控制器(控制其它控制器的控制器)RootViewController,来控制主视图控制器(MainViewController)和背后视图控制器(FlipsideViewControlle原创 2012-05-30 15:03:59 · 2129 阅读 · 0 评论 -
《iPhone与iPad开发实战—iOS经典应用剖析》连载五
RootViewController的h文件编写完成我们接着编写RootViewController的m文件如“代码清单3-2 Password/Classes/RootViewController.m”所示。【代码清单3-1】 Password/Classes/RootViewController.m#import "RootViewController.h"#import "Main原创 2012-06-03 17:36:56 · 2568 阅读 · 0 评论 -
《iPhone与iPad开发实战—iOS经典应用剖析》连载六
3.3.3 主视图UI主视图如图3-36所示是MainView(主视图)设计窗口,我们一步一步介绍一下如何实现该视图设计和编程。图3-36 MainView视图设计窗口主视图中的控件进行了编号,视图中的控件内容见表3-7所示。表3-7MainView视图中的控件原创 2012-06-08 14:05:21 · 2728 阅读 · 0 评论 -
《iPhone与iPad开发实战—iOS经典应用剖析》连载七
3.3.4主视图代码在本应用中主视图中使用的视图是MainView,事实上在很多应用中我们不用为视图控制器自定义一个视图类的而是直接使用UIView基类就可以了。由于本应用是按照旧版本的Xcode模板编写的,我们还是按照旧版本介绍吧。在Cocoa MVC设计模式中,视图中的控件在视图控制器或者视图中都要有对应的控件变量,没有自定义视图类的时候,这些控件变量是在视图控制器中定义的,有了自原创 2012-06-12 10:22:24 · 2428 阅读 · 0 评论 -
如何去旧工程适配iOS6和iPhone5
苹果每发布一个系统,都够开发者忙活一阵的,更新xcode适配新系统:像iOS4支持Retain需要@2x的图;像iOS5不支持udid;像现在的iOS6和iPhone5要面对的下面的一堆问题。1.添加Retina 4 launch image,运行工程的时候会主动提示你。这时候直接点Add就好了。会默认添加一张Default-568h@2x.png的黑图:不添加的话,程序运行起来会转载 2012-09-27 10:40:42 · 2085 阅读 · 1 评论 -
Objective-C与JavaScript的交互
UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将 javascript嵌入页面中,通过这个方法我们可以在iOS中与UIWebView中的网页元素交互。 UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将ja转载 2012-09-29 09:52:57 · 2351 阅读 · 0 评论 -
viewDidUnload 和 dealloc 的区别
对于iphone开发人员来说,内存管理是极为重要的技巧,哪怕程序的功能再强大,设计再漂亮,如果内存控制不好,也难逃程序莫名退出的噩运,这与网页开发是完全不同的。内存控制里面有很多门道,在这里分析一下 viewDidUnload 和 dealloc 的区别,关于这两者的区别的文章很多,但是大都是摘抄和翻译官方文档,有的也只是简单的说两句,并没有详细说出两者具体的区别。在了解两者之间的区别,首转载 2012-10-11 10:20:14 · 1593 阅读 · 0 评论 -
iPhone 开发过程中的一些小技术的总结
1 随机数的使用头文件的引用#import #import srandom()的使用srandom((unsigned)(mach_absolute_time() & 0xFFFFFFFF));直接使用 random() 来调用随机数2 在UIImageView 中旋转图像float rotateAngle = M_PI;CGAffineTransform tr转载 2012-09-24 10:36:13 · 2237 阅读 · 0 评论 -
Cocoa教学:Windows OOP与Cocoa MVC之对比
封装不封装,这是个问题。今天我在看Cocoa开发者邮件列表的时候,看到一个帖子,求助如何在两个View之间互相通信的问题。做Windows程序员的时间长的我都不好意思说了,我意识到,这个问题在我刚刚接触到Mac上的Objective-C时也遇到过。我现在可以提出这个问题的简化版:“我有一个对话框,获取了一些用户输入的数据。我现在需要从我那个对话框中把这个数据提取出来以供主窗口使用。如何才能转载 2012-09-24 11:06:58 · 2190 阅读 · 1 评论 -
多线程之NSInvocationOperation
多线程编程是防止主线程堵塞,增加运行效率等等的最佳方法。而原始的多线程方法存在很多的毛病,包括线程锁死等。在Cocoa中,Apple提供了NSOperation这个类,提供了一个优秀的多线程编程方法。本次介绍NSOperation的子集,简易方法的NSInvocationOperation:@implementation MyCustomClass- (void)launchTas转载 2012-10-16 10:11:12 · 1962 阅读 · 0 评论 -
iPhone文件系统NSFileManager讲解
iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。每个程序都会有它自己的沙盒,通过它你可以阅读/编转载 2012-09-26 15:28:23 · 1892 阅读 · 0 评论 -
iOS客户端的APNS服务简介与实现
APNs --Apple Push Notification ServiceAPNs 苹果推送服务器Device 安装带有推送服务程序的iPhone手机Provider 程序服务器,把需要推送的信息发给 APNsDeviceToken 在Device第一次连接APNs时,由APNs生成的经过加密的连接认证信息。在以后的连接中,无论时Provider到APNs还是APNs到Devic转载 2012-10-30 10:11:50 · 2554 阅读 · 0 评论 -
objective-c ——代码块
通过代码块(block)功能,你就能像对待对象一般,指定要在方法和函数中传递任意代码部分。代码块的声明:int main (int argc, const char * argv[]){@autoreleasepool {void (^myBlock) (NSString *x);//声明变量/*代码块是存储在一个变量中,并且需要参数和声明的返回类型。返回类型:转载 2012-10-24 12:28:14 · 4983 阅读 · 2 评论 -
iOS开发缓存机制之—内存缓存机制
在IOS应用程序开发中,为了减少与服务端的交互次数,加快用户的响应速度,一般都会在iOS设备中加一个缓存的机制。这篇文章将介绍一下如何在iOS设备中进行缓存,本文先介绍一下将内容缓存到内存中,下一篇文章就介绍一下在iOS磁盘上缓存内容。 使用缓存的目的是为了使用的应用程序能更快速的响应用户输入,是程序高效的运行。有时候我们需要将远程web服务器获取的数据缓存起来,减少对同一个url转载 2012-10-25 09:48:13 · 2204 阅读 · 0 评论 -
ios获得通讯录中联系人的所有属性
ABAddressBookRef addressBook = ABAddressBookCreate(); CFArrayRef results = ABAddressBookCopyArrayOfAllPeople(addressBook); for(int i = 0; i < CFArrayGetCount(results); i++) { ABR转载 2012-11-05 16:22:38 · 2044 阅读 · 0 评论 -
我的作品《iPhone与iPad开发实战—iOS经典应用剖析》--以及源码下载地址
我的作品:《iPhone与iPad开发实战—iOS经典应用剖析》一书正式发售;(请到书店、淘宝、当当网等进行购买) 首先给出书籍源码下载地址,然后再对书籍进行一个详细的介绍!《iPhone与iPad开发实战—iOS经典应用剖析》书籍源码下载地址(免费下载): http://download.youkuaiyun.com/detail/tonny_guan/4272389原创 2012-05-10 14:06:06 · 7792 阅读 · 13 评论 -
iOS开发那些事--简单表视图
表视图是iOS开发中使用最频繁的视图,我们一般都会选择以表的形式来展现数据,比如通讯录、频道列表等。表视图分段、分组、索引等功能使我们所展示的数据看起来更规整更有调理,更令人兴奋的是表视图还可以利用细节展示等功能多层次的展示数据,正所谓一表胜千言。 不过,相较于其它控件表视图的使用比较复杂,但是对比于表视图各种灵活多变的功能,我们在使用上花费的努力还是相当值得的。简单表视图表视图的形式原创 2013-02-27 16:17:18 · 2770 阅读 · 0 评论 -
iPhone与iPad开发实战——iOS 经典应用剖析视频--观看地址
iPhone与iPad开发实战——iOS 经典应用剖析视频试看地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo&courseId=241038课程要求熟悉C,C++,Objective C,有相关工作经验。项目平台:演示:mac os版本:xcode3.25,iOS4.2工具:xcode涉及知识:语言:Objective原创 2011-10-25 10:50:01 · 2440 阅读 · 0 评论 -
iPhone与iPad开发实战——精通Object C--视频
iPhone与iPad开发实战——精通Object C观看地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo&courseId=240564 ios作为一款为移动终端打造的手持设备操作平台,其引领技术前沿、时尚前沿、拥有自主知识产权,引起业界的高度关注。在2011年股市动荡“经济寒流”中,苹果公司一跃成为全球市值第一的公原创 2011-11-05 10:38:24 · 2381 阅读 · 0 评论 -
iPhone与iPad开发实战——精通iOS开发--视频
iPhone与iPad开发实战——精通iOS开发地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo&courseId=240566课程要求:熟悉C,C++,objective C项目平台:演示:mac os版本:xcode3.25,ios4.2工具:xcode涉及知识:语言:objective C操作系统:iOS手机操作系原创 2011-11-30 11:52:41 · 4739 阅读 · 0 评论 -
iPhone与iPad开发实战——iOS 经典应用剖析--视频
iPhone与iPad开发实战——iOS 经典应用剖析视频观看地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo&courseId=241038 ios作为一款为移动终端打造的手持设备操作平台,其引领技术前沿、时尚前沿、拥有自主知识产权,引起业界的高度关注。在2011年股市动荡“经济寒流”中,苹果公司一跃成为原创 2011-10-23 12:04:04 · 2338 阅读 · 0 评论 -
Swift类型检查与转换
继承会发生在子类和父类中,如图15-4所示,是一系列类的继承关系类图,Person是类层次结构中的根类,Student是Person的直接子类,Worker是Person的直接子类。这个继承关系类图的具体实现代码如下:class Person { var name : String var age : Int func description() -> String {原创 2014-09-04 19:40:18 · 9239 阅读 · 0 评论 -
Swift内存管理-示例讲解
具体而言,Swift中的ARC内存管理是对引用类型的管理,即对类所创建的对象采用ARC管理。而对于值类型,如整型、浮点型、布尔型、字符串、元组、集合、枚举和结构体等,是由处理器自动管理的,程序员不需要管理它们的内存。一、引用计数每个Swift类创建的对象都有一个内部计数器,这个计数器跟踪对象的引用次数,称为引用计数(Reference Count,简称RC)。当对象被创建的时候,引用计数为1,每次原创 2014-09-04 20:13:57 · 3931 阅读 · 2 评论 -
Swift数字类型之间的转换
Swift数字类型之间的转换Swift是一种安全的语言,对于类型的检查非常严格,不同类型之间不能随便转换。一、整型之间的转换在C和Objective-C等其他语言中,整型之间有两种转换方法:从小范围数到大范围数转换是自动的;从大范围数到小范围数需要强制类型转换,有可能造成数据精度的丢失。而在Swift中这两种方法是行不通的,我们需要通过一些函数进行显式地转换,代码如下:let historySco原创 2014-09-05 09:59:54 · 6899 阅读 · 0 评论 -
Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课
Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课本课程采用QQ群直播方式进行直播,价值99元视频课程免费直播。完整的基于Swift项目实战,手把手教你做一个Swift版iPhone计算器。(直播过程也有惊喜!)直播QQ群:362298485(直播时点击群视频即可进入直播课堂)直播时间:8月26日(周二),9月2日(周四),每天20:00-22:00欢迎咨询客服QQ:157原创 2014-08-21 14:52:57 · 4074 阅读 · 0 评论 -
使用Playground编写第一个Swift程序
从控制台输出“HelloWorld”是我学习C语言的第一步,也是我人生中非常重要的一步。多年后的今天,我仍希望以HelloWorld作为第一步,与大家共同开启一个神奇、瑰丽的世界——Swift编程。本章以HelloWorld作为切入点,向大家系统介绍如何使用Xcode的Playground编写和运行Swift程序代码。编写和运行Swift程序有多种方式,我们可以通过在Xcode中创建一个iOS或M原创 2014-08-08 20:01:21 · 41151 阅读 · 0 评论 -
Swift字典集合
字典表示一种非常复杂的集合,允许按照某个键来访问元素。字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合。键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的。如下图所示是字典结构的“学号与学生”集合,学号是键集合,不能重复,学生是值集合,可以重复。 提示 字典中键和值的集合是无序的,即便在添加的时候是按照顺序添加的,当取出这些键或值的时候,也会变得无序。字原创 2014-09-07 20:47:38 · 4561 阅读 · 0 评论 -
Swift字典类
在Foundation框架中提供一种字典集合,它是由“键-值”对构成的集合。键集合不能重复,值集合没有特殊要求。键和值集合中的元素可以是任何对象,但是不能是nil。Foundation框架字典类也分为NSDictionary不可变字典和NSMutableDictionary可变字典。一、NSDictionary类NSDictionary有很多方法和属性,下面总结其常用的方法和属性。initWith原创 2014-09-07 21:56:16 · 20844 阅读 · 0 评论