![个人头像照片](https://ucc.alicdn.com/avatar/img_eb9d2870986a381ed44d6f4a5e2a1ae3.jpg)
国内著名iOS/Cocos技术作家,iOS技术顾问,Cocos最有价值专家(CVP),智捷课堂首席培训专家。担任51CTO社区iOS技术顾问。 著有多部移动开发畅销书。
<p><span style="font-size:14px;">类和结构体有很多共性:</span></p> <p><span style="font-size:14px;"> </span></p> <p><span style="font-size:14px;"> 定义属性存储数据</span></p> <p><span style="font-size:14px;"> 定义
<p><span style="font-size:14px;">语法: </span></p> <p><span style="font-size:14px;"></span></p> <pre code_snippet_id="405134" snippet_file_name="blog_20140625_1_7481080" name="code" class="html">{ (pa
<div> <p><span style="font-size:14px;">函数定义</span></p> <p><span style="font-size:14px;"> </span></p> <p><span style="font-size:14px;">使用 func 定义一个函数。调用函数使用他的名字加 上小括号中的参数列表。使用 -> 分隔参数的名字和 返回值类型。</
<div> <p><span style="font-size:14px;">分支语句</span></p> <p><span style="font-size:14px;"> </span></p> <p><span style="font-size:14px;">1. 条件语句 if-else ,基本语法形式如下,其中 “[]” 中 的部分可以省略。</span></p> <p><span
<p><span style="font-size:14px;">字典初始化</span></p> <p><span style="font-size:14px;"> </span></p> <p><span style="font-size:14px;">基本语法:</span></p> <p><span style="font-size:14px;"> </span></p> <p><sp
<p><span style="font-size:14px;">数组初始化</span></p> <p><span style="font-size:14px;">基本语法:</span></p> <p><span style="font-size:14px;">[value 1, value2, value 3] </span></p> <p><span style="font-size:
<div> <p><span style="font-size:14px;">元组将多个值组合为单个值。元组内的值可以是任意 类型,各元素不必是相同的类型。元组在作为函数返 回值时尤其有用。</span></p> <p><span style="font-size:14px;"> </span></p> <p><span style="font-size:14px;">1、定义方法1</spa
<div> <p><span style="font-size:14px;">字符串初始化</span></p> <p><span style="font-size:14px;"> </span><span style="font-size:14px;">1、初始化</span></p> <p><span style="font-size:14px;"> </span></p> <p><spa
<h3 style="margin: 0px; padding: 0px; font-size: 14px; width: 510px; height: 22px; line-height: 22px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: Verdana, 'Microsoft
<div> <p><span style="font-size:14px;">整型</span></p> <p><span style="font-size:14px;"> </span></p> <p><span style="font-size:14px;"> </span></p> <p><span style="font-size:14px;"> Swift 提供 8、16、32、
<p>Swift 是用于设计 iOS 及 Mac OS X 应用的一门新 语言。</p> <p> </p> <p>Swift 特点</p> <p> </p> <p>• Swift 保留了 C 与 Objective-C 的优点,并摒弃 其为了兼容 C 语言所受的限制。</p> <p> </p> <p>• Swift吸纳了安全编程模式,并新增了一些现代 化功能,使其更易使用、更
<p><span style="font-size:14px;">在多个场景切换时候,场景的生命周期会更加复杂。这一节我们介绍一下场景切换生命周期。</span></p> <p><span style="font-size:14px;">多个场景切换时候分为几种情况:</span></p> <p><span style="font-size:14px;">情况1,使用pushScene函数从实
<p><span style="font-size:14px;">层(Layer)的生命周期函数有如下:</span></p> <p><span style="font-size:14px;">init()。初始化层调用。</span></p> <p><span style="font-size:14px;">onEnter()。进入层时候调用。</span></p> <p><span sty
<p><span style="font-size:14px;">精灵帧缓存是缓存的一种,缓存有如下几种:</span></p> <p><span style="font-size:14px;">纹理缓存(TextureCache)“。使用纹理缓存可以创建纹理对象,在上一节我们已经用到了。</span></p> <p><span style="font-size:14px;">精灵帧缓存(Sr
<h2></h2> <p><span style="font-weight: normal;"><span style="font-size:14px;">游戏是一种很耗费资源的应用,特别是在移动设备中的游戏,性能优化是非常重要的</span></span></p> <h3><span style="font-weight: normal;"><span style="font-size:14
<p><span style="font-size:14px;">精灵类是Sprite,它的类图如下图所示:</span></p> <p style="text-align: center;"><span style="font-size:14px;"><img src="http://img.blog.csdn.net/20140516181640234" alt=""><br></span
<h3><span style="font-weight: normal;"><span style="font-size:14px;"><span style="color: windowtext;">开关菜单是</span><span style="color: windowtext;">MenuItemToggle</span><span style="color: windowtext
<h3><span style="font-size:14px;font-weight: normal;"><span style="color: windowtext;">精灵菜单类是</span><span style="color: windowtext;">MenuItemSprite</span><span style="color: windowtext;">,图片菜单类是</sp
<h3><span style="font-size:14px; font-weight:normal"><span style="color:windowtext">文本菜单是菜单项只是显示文本,文本菜单类包括了</span><span style="color:windowtext">MenuItemLabel</span><span style="color:windowtext">、<
<h3><span style="font-weight:normal"><span style="font-size:14px"><span style="color:windowtext">我们在</span><span style="color:windowtext">Windows</span><span style="color:windowtext">下使用</span><span
<h3><span style="font-size:14px">Node还有两个非常重要的属性:position和anchorPoint。</span></h3> <p><span style="font-size:14px">position(位置)属性是Node对象的实际位置。position属性往往还要配合使用anchorPoint属性,为了将一个Node对象(标准矩形图形)精准的放置
<h2></h2> <h2></h2> <p></p> <div><p><span style="font-size:18px; font-weight:normal">Cocos2d-x中有很多概念,这些概念很多来源于动画、动漫和电影等行业,例如:导演、场景和层等概念,当然也有些有传统的游戏的概念。Cocos2d-x中核心概念:</span><span style="font-size:18
<p>我们的编写的第一个程序一般习<span style="font-size:10px">惯</span>上都命名为HelloWorld,从它开始再学习其他的内容。下面介绍的第一个Cocos2d-x游戏我们也命名为HelloWorld。</p> <p>创建工程</p> <p>在Cocos2d-x早期版本中,创建工程是通过安装在Visual Studio中的工程模板而创建的,而目前创建工程Co
<h1><strong>使用SQLite数据库</strong></h1> <h2><strong>创建数据库</strong></h2> <p>创建数据库过程需要3个步骤:</p> <p>1、使用sqlite3_open函数打开数据库;</p> <p>2、使用sqlite3_exec函数执行Create Table语句,创建数据库表;</p> <p>3、使用sqlite3_close函数释放
<p>现在的移动设备很多都提供定位服务,使用iOS系统的iPhone、iPod Touch和iPad都可以提供位置服务,iOS设备能提供3种不同途径进行定位:Wifi, 蜂窝式移动电话基站, GPS卫星</p> <p><span id="more-218"></span></p> <p>iOS不像Android系统在定位服务编程时,可以指定采用哪种途径进行定位。iOS的API把底层这些细节屏蔽
<p>在iOS 6之后,不再使用谷歌地图了,而是使用苹果自己的地图,但是API编程接口没有太大的变化。开发人员不需要再学习很多新东西就能开发地图应用,这是负责任的做法。因此本节介绍的内容也同样适用于iOS5上运行地图应用开发。</p> <p><span id="more-206"></span></p> <p>iOS应用程序中使用Map Kit API开发地图应用程序。 其核心是MKMapVi
<p>读取通信录中的联系人一般的过程是先查找联系人记录,然后再访问记录的属性,属性又可以分为单值属性和多值属性。通过下面例子介绍联系人的查询,以及单值属性和多值属性的访问,还有读取联系人中的图片数据。</p> <p align="center"><span id="more-352"></span><a href="http://iosbook1.com/?attachment_id=353"
<div> <p>资源文件包括:图片文件、音频文件以及前文提到的Localizable.strings等文件,它们的特点是都是随着应用一起打包发布。但就本地化而言无论是图片文件还是音频文件都必须实现的步骤都是类似的,因此我们重点介绍图片文件的本地化。</p> <p><span id="more-345"></span></p> <p>资源文件的本地化,也是需要准备好几个本地化版本的文件。图片需
<p>文本信息本地化在本地化工作中占有很大的比例。包括了:应用名称本地化、系统按钮和信息本地化,以及静态文本信息本地化。</p> <p><span style="font-size:14px;"><strong>系统按钮和信息本地化</strong></span></p> <p>还记得天气预报应用背后的“完成”按钮吗,它在中文环境下是“完成”,在英语环境下是“Done”。</p> <p ali
<p>我们把应用上传到App Store之前需要把编译的二进制文件和资源文件打成压缩包,压缩格式是zip。<span id="more-282"></span></p> <p>首页找到编译到什么地方,这个很重要也不太好找,我们可以看看编译日志,找到其中的Create universal binary HelloWorld…的内容,然后展开内容如下:</p> <p>Create Universa
<p>我们从编写到发布应用会经历3个阶段:模拟器上运行调试、设备上运行调试和发布编译,苹果为了防止非法设备和非开发人员调试和发布应用,使用配置概要文件(Provisioning Profiles)控制在设备上运行调试和发布编译阶段,配置概要文件分为两种:开发配置概要文件和发布配置概要文件</p> <p><span id="more-269"></span></p> <p align="cent
<p>Passbook是iOS 6的新功能,只能在iPhone和iPod touch设备中使用。它可以帮助我们管理商家发放的电子会员卡、积分卡、优惠券等。这将对未来电子商务产生深远的影响。商家通过发放会员卡、积分卡、优惠券等,提高与消费者的互动,吸引人们更多消费。Passbook的诞生,正是为了将所有这些“卡”和“券”电子化,存放在iPhone或iPod touch里。</p> <embed
<p><span data-mce-style="font-size: large;" style="font-size:18px;"><strong>1、<span data-mce-style="font-family: Times New Roman;" style="font-family:Times New Roman;">iOS</span>客户端编程</strong></span
<p>配置推送通知比较麻烦,需要iOS开发者帐号,然后配置一个Apple ID、配置概要文件和SSL证书。</p> <p><span id="more-150"></span></p> <p align="center"><a href="http://www.iosbook3.com/wp-content/uploads/2013/05/8.jpg"><img class="aligncen
<p>要编写社交网络客户端程序,可以大体上分为4个主要的步骤</p> <p><span id="more-144"></span></p> <p align="center"><a href="http://www.iosbook3.com/wp-content/uploads/2013/05/5.jpg"><img class="aligncenter size-full wp-image-
<p>在iOS 6之后提供了一个分享列表视图,它通过UIActivityViewController管理。苹果设计它主要的目的是替换分享动作选单(ActionSheet),分享动作选单是出于分享目的的动作选单。</p> <p align="center"><span id="more-136"></span><a href="http://www.iosbook3.com/wp-content
<p>iCloud文档在保存的过程中难免会发生冲突,我们必须要有一套解决冲突的策略。策略的采用要根据用户的需求而定,有的简单有的复杂,最简单的是直接使用当前版本覆盖冲突版本。复杂的策略,例如:如果是两个文本文件冲突,可以将两个冲突点列出来,让用户来判断再进行保存。</p> <p><span id="more-131"></span></p> <p>我们采用的策略是使用当前版本覆盖以前的版本。解
<p>iCloud文档存储编程相对键值数据存储而言比较复杂,涉及到自定义文档类、获得<span style="font-family:Times New Roman;">iCloud</span><span style="font-family:宋体;">文档目录、查找</span><span style="font-family:Times New Roman;">Ubiquity</spa
<p><strong>iCloud键值数据存储设计</strong></p> <p>iCloud键值数据存储编程实例,画面中有两个开关控件,左图是设备1点击“设置iCloud数据”按钮,将控件状态保存到iCloud服务器。右图是设备2画面,过几秒钟后设备2收到变更通知。</p> <p align="center"> <a href="http://www.iosbook3.com/wp-con
<p><strong>配置iCloud</strong></p> <p>开发iCloud应用一方面需要准备真实的iOS设备,另一方面还需要有iOS开发者账号,</p> <p>使用iOS开发者账号登录到iOS开发中心的配置门户网站(iOS Provisioning Portal 网址为https://developer.apple.com/ios/manage/overview/index.ac
<p>有的时候应用需要能够在iPhone和iPad上运行,当然我们可以选择做两个完全不同的工程,然后共用一些类,但是我们也可以只创建一个工程,然后编译生成一个产品,这个产品能够自适应iPhone和iPad设备,然后在App Stroe发布的时候,它会有两套不同的截图展示给用户。App Store上的Evernote应用,它有两套截图iPhone和iPad,这说明Evernote就是自适应iPh
<p>我的iOS视频开放了,欢迎大家在线观看,就是版本有些老,希望对有需要的同学有帮助(<span style="color:#ff00;">高清的</span>)<br></p> <p><strong><span style="color:#ff00;">iPhone与iPad开发实战--精通iOS开发(37讲)</span></strong><br></p> <p><a target="_
<p>服务器端Bonjour服务发布成功之后,客户端可以通过NSNetService解析服务,解析成功后,可以获得通讯的数据细节,如:IP地址、端口等信息。</p> <p>首先需要实例化NSNetService对象代码如下:</p> <pre name="code" class="cpp">-(id)init { _service = [[NSNetService alloc] initWi
<p>客户端我们使用iPhone应用程序,画面比较简单。点击发送按钮,给服务器发送一些字符串过去。点击接收按钮就会从服务器读取一些字符串,并且显示在画面上。</p> <p><span id="more-82"></span></p> <p align="center"><a href="http://www.iosbook3.com/wp-content/uploads/2013/03/21.
<p>使用Socket进行C/S结构编程,连接过程</p> <p> <a href="http://www.iosbook3.com/wp-content/uploads/2013/03/12.jpg" data-mce-href="http://www.iosbook3.com/wp-content/uploads/2013/03/12.jpg"><img alt="1" src="http
<p>基于蓝牙对等网络通信就是使用Game Kit中的GKSession、GKSessionDelegate、GKPeerPickerController和GKPeerPickerControllerDelegate来实现。开发过程分为3个步骤:连接、发送数据和接收数据。</p> <p>下面我们通过一个实例介绍一下基于蓝牙对等网络通信过程。用户点击“连接”按钮,建立连接过程中会出现连接对话框,
<p>第三方的等待指示器,MBProgressHUD就是第三方提供的等待指示器框架。下面是MBProgressHUD提供的等待指示器样式,它们基本可以分为:未知结束时间和已知结束时间两大类等待指示器,在MBProgressHUD中可以为等待指示器添加标签和详细标签</p> <p align="center"></p> <p align="center"><a href="http://www.
<p><strong>实例:请求队列</strong></p> <p>我们通过一个例子介绍一下请求队列使用,我们设计了一个应用,用户点击GO按钮从服务器同时下载两张图片显示在画面中。</p> <p align="center"> <a href="http://www.iosbook3.com/wp-content/uploads/2013/03/7.jpg" data-mce-href="h
<p>我们运行程序,如果网速很慢,查询的时候会一直黑屏,直到请求结束画面才出现,这样用户体验很不好。因此同步请求一般只是在某个子线 程中使用,而不在主线程中使用。异步请求的用户体验要比同步请求好,因此一般情况下异步请求用的很多。等待过程中在状态栏上会出现网络等待指示器的经典旋 转小图标,而使用ASIHTTPRequest异步请求就实现这些效果,不用自己额外编写代码。</p> <p align=
在ASIHTTPRequest框架中与HTTP请求相关的类有:ASIHTTPRequest和ASIFormDataRequest,其中最常用的是ASIHTTPRequest,ASIFormDataRequest是ASIHTTPRequest的子类,ASIFormDataRequest可以发送类似与HTML表单数据,也可以上传数据,默认采用POST请求方法。也可以其它的HTTP请求方法。它们都可