随笔分类 - Iphone
iOS消息推送机制的实现
摘要:iOS消息推送的工作机制可以简单的用下图来概括:Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务器。上图可以分为三个阶段:第一阶段:应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。从上图我们可以看到:1、应用程序注册消息推送。2、iOS从APNS Server获取dev
阅读全文
Objective-C中 copy, tetain, assign , readonly , readwrite, nonatomic区别
摘要:nonatomic:非原子性访问,对属性赋值的时候不加锁,多线程并发访问会提高性能。如果不加此属性,则默认是两个访问方法都为原子型事务访问。(atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所 以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。)assign: 简单赋值,不更改索引计数对基础数据类型 (例如NSInteger)和C数据类型(int, float, double, char, 等) 适用简单数据类型copy:建立一个索引计数为1的对
阅读全文
卸载xcode
摘要:Uninstalling Xcode Developer ToolsTo uninstall Xcode developer tools on the boot volume along with the <Xcode> directory, from a Terminal window type:$ sudo <Xcode>/Library/uninstall-devtools --mode=allTo remove the underlying developer content on the boot volume, but leave the <Xcode
阅读全文
xcodebuild changed some of the values
摘要:test:Add CUSTOM_BUNDLE_IDENTIFIER and CUSTOM_PRODUCT_NAME under the user defined section of build settings.Add a .xcconfig file to the project with CUSTOM_PRODUCT_NAME, and CUSTOM_BUNDLE_IDENTIFIER set to the nominal values.Set the product name to ${CUSTOM_PRODUCT_NAME} and bundle name to ${CUSTOM_B
阅读全文
xcodebuild 使用手册
摘要:localhost:bin han$ xcodebuild -hxcodebuild: error: invalid option '-h'Usage: xcodebuild [-project <projectname>] [[-target <targetname>]...|-alltargets] [-configuration <configurationname>] [-arch <architecture>]... [-sdk [<sdkname>|<sdkpath>]] [<builds
阅读全文
building-ios-apps-for-over-the-air-adhoc-distribution
摘要:I’ve written about building iOS applications withHudsonJenkins, but until recently there hasn’t been a convenient way of getting those applications to your testers. Of course the most important part of your build output will be the app bundle you send to Apple’s iTunes Connect web interface, but thr
阅读全文
building-iphone-apps-with-hudson-part-2
摘要:I’ve already posted before onhow to set up Hudson to compile and build iPhone applications, but I just had a “OMG I <3 Hudson!” moment just now, and felt I had to share it.I do most of my mobile development literally while I’m mobile; on the train during my morning commute, from coffee shops on t
阅读全文
how-to-automate-your-iphone-app-builds-with-hudson
摘要:As any iPhone application developer who’s released at least a single app to the App Store will tell you, releasing your app is a terrible pain in the…well, it’s not a fun experience. After your second or third app you start to get the hang of things, but there’s still pain and suffering involved. Ma
阅读全文
iOS 的框架
摘要:本附录介绍iOS系统包含的框架,它们为编写iOS平台的软件提供必要的接口。下面的表格尽可能地列出框架中的类、方法、函数、类型以及常量使用的关键前缀,请避免在您的符号名称中使用这些前缀。设备中的框架表B-1描述iOS设备提供的框架,它们位于<Xcode>/Platforms/iPhoneOS.platform/Developer/SDKs/<iOS_SDK>/System/Library/Frameworks目录。路径中的<Xcode>表示Xcode的安装目录,<iOS_SDK>则表示目标SDK版本。表中标题为“最先引入”的那一列表示首次引入相关框
阅读全文
Core OS 层
摘要:Core OS层的底层功能是很多其他技术的构建基础。通常情况下,这些功能不会直接应用于应用程序,而是应用于其他框架。但是,在直接处理安全事务或和某个外设通讯的时候,则必须要应用到该层的框架。Accelerate 框架iOS 4.0引入了Accelerate框架(Accelerate.framework)。该框架的接口可用于执行数学、大数字以及DSP运算。和开发者个人编写的库相比,该框架的优点在于它根据现存的各种iOS设备的硬件配置进行过优化。因此,您只需一次编码就可确保它在所有设备高效运行。如需要进一步了解Accelerate框架,请查看Accelerate框架参考。External Acce
阅读全文
Core Services 层
摘要:Core Services层为所有的应用程序提供基础系统服务。可能应用程序并不直接使用这些服务,但它们是系统很多部分赖以建构的基础。高阶特性下面的部分描述一些比较常见特性,也许您正打算让您的应用程序支持这些特性。块对象iOS 4.0引入了块对象。块对象是C级别的构造,您可以在C或Objective-C代码中使用快对象。从本质上说,块对象本质上是一个匿名函数加上该函数的伴随数据。有些时候,其他语言也称块对象为closure或者lambda。块对象非常适用于回调函数。如果您需要有很便捷的方法将执行代码和相关数据组合在一起,块对象也是很好的选择。在 iOS系统中,块对象通常用于下述场合:作为委托或委
阅读全文
媒体层
摘要:媒体层包含图形技术、音频技术和视频技术,这些技术相互结合就可为移动设备带来最好的多媒体体验,更重要的是,它们让创建外观音效俱佳的应用程序变得更加容易。您可以使用iOS的高级框架更快速地创建高级的图形和动画,也可以通过底层框架访问必要的工具,从而以某种特定的方式完成某种任务。图形技术高质量的图形是iOS应用程序的重要组成部分。创建应用程序最简单最有效的方法是使用事先渲染过的图片,搭配上标准视图以及UIKit框架的控件,然后把绘制任务交给系统来执行。但是在某些情况下,您可能需要一些UIKit所不具有的功能,而且需要定制某些行为。在这种情况下,您可以使用下述技术管理应用程序的图形内容:Core Gr
阅读全文
Cocoa Touch 层
摘要:Cocoa Touch层包含创建 iOS应用程序所需的关键框架。上至实现应用程序可视界面,下至与高级系统服务交互,都需要该层技术提供底层基础。在开发应用程序的时候,请尽可能不要使用更底层的框架,尽可能使用该层的框架。高级特性下面章节描述一些常见特性,也许您也正打算在应用程序支持这些特性。多任务如果应用程序构建于iPhone SDK 4.0及其后续版本(且运行于iOS 4.0及后续版本操作系统),则点击Home键的时候,应用程序不会结束,而是切换到后台。对于大多数应用程序来说,进入后台,它们就会进入挂起状态。让应用程序驻留在后台可以避免以后的重新启动过程,应用程序可以直接将自己激活,这在很大程度
阅读全文
iOS 开发相关信息
摘要:iOS是运行于iPhone、iPod touch以及 iPad设备的操作系统,它管理设备硬件并为手机本地应用程序的实现提供基础技术。根据设备不同,操作系统具有不同的系统应用程序,例如Phone、Mail以及Safari,这些应用程序可以为用户提供标准系统服务。iPhone SDK包含开发、安装及运行本地应用程序所需的工具和接口。本地应用程序使用iOS系统框架和Objective-C语言进行构建,并且直接运行于iOS设备。它与web应用程序不同,一是它位于所安装的设备上,二是不管是否有网络连接它都能运行。可以说本地应用程序和其他系统应用程序具有相同地位。本地应用程序和用户数据都可以通过iTune
阅读全文
了解并解决代码签名问题
摘要:了解并解决代码签名问题(为保持跟开发环境以及APPLE开发者社区网站结构对应,一些名词未作翻译) 绝大多数iPhone Developer/Distribution 的代码签名生成错误是因为证书和Provisioning profiles没有在开发系统上正确安装引起的。本文描述在开发 iPhone OS 应用程序时所需要的文件以及如何安装它们。这个技术说明为“Program User Guide”提供支持,Program User Guide 可以在 Portal Resources 下的 iPhone Developer Program Provisioning Portal 找到。如果你对
阅读全文
iphone后台功能执行
摘要:- (void)applicationDidEnterBackground:(UIApplication *)application { __block UIBackgroundTaskIdentifier bgTask; bgTask = [application beginBackgroundTaskWithExpirationHandler:^{ dispatch_async(dispatch_get_main_queue(), ^{ if (bgTask != UIBackgroundTaskInvalid) { bgTask = UIBackgroundTaskInvalid; }
阅读全文
手动下载并安装iOS 4.3 Library
摘要:Xcode的Preference中的Documentation下,展开文档中 iOS 4.3 Library,找到Feed:http://developer.apple.com/rss/c ... AppleiPhone4_3.atom,在Safari打开这个链接,下载适合你XCode版本的 *.xar 文件,下载完成后,将 *.xar 文件拷贝到/Developer/Documentation/DocSets/,并解压,sudo xar -xf *.xar,然后,sudo chown -R -P devdocs 解压后的文件名.docset。这样就OK了。
阅读全文
iPhone的录音和播放
摘要:最近准备做一个关于录音和播放的项目!查了一些资料,很简单的做了一个,下面我就分享一下iPhone的录音和播放的使用心得。iPhone的录音和播放使用到了media层的内容,media层处于cocoa层之下,用到的很大一部分都是c语言的结构。1、引入框架。#import<AVFoundation/AVFoundation.h>2、创建录音项。- (void) prepareToRecord{AVAudioSession*audioSession = [AVAudioSessionsharedInstance];NSError*err =nil;[audioSession setCat
阅读全文
如何在后台播放音乐
摘要:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { audioSession = [AVAudioSession sharedInstance]; NSError *err = nil; UIDevice *device = [UIDevice currentDevice]; BOOL backgroundSupported = NO; if ([device respondsToSelector:@selector(isMu
阅读全文