- 浏览: 328145 次
- 性别:
- 来自: 杭州
-
文章分类
最新评论
-
arlenliugj:
才发现这贴子好早
如何在Ubuntu下安装windows7 -
arlenliugj:
请问一下,这样安装上windows会不会把已经装好的linux ...
如何在Ubuntu下安装windows7 -
zhaomengbin:
写的很不错,可以写个文件给合并的方法么?,将分割后的几份文件还 ...
文件分割程序 -
junhe0723:
3Q,刚出现这个问题解决了。
jvm terminated exit code 1 -
Anddy:
shell 双击选中太不智能了。
XSHELL快捷键设置
用户界面的选择:
1:堆积方式:sdk提供的控件,你一个一个往上加,搭建起来就ok
2:用openGL es绘图,如果你的应用程序需要频繁的画面更新或复杂的渲染,那么使用它,一般游戏会使用这种。
数据模型:
String: NSString(NSMutableString)
NSAttributedString(NSMutableAttributed-String)
Numbers:NSNumber NSDecimalNumber NSIndexPath
Raw bytes:NSData (NSMutableData) NSValue
Dates and times:NSDate NSDateComponents
URLs:NSURL
Collections:NSArray(NSMutableArray) NSDictionary(NSMutableDictionary)
NSIndexSet(NSMutableIndexSet) NSOrderedSet(NSMutableOrderedSet)
NSSet (NSMutableSet)
NSAttributedString:可以根据下标来设置字符串的颜色,字体大小等属性。
NSNumber:继承自NSValue,使用NSValue来辅助我们实现一些简单数据结构的封装,可以搜索下。
NSDecimalNumber:继承NSNumber,用科学计数来表示,10的n次
NSIndexPath:tableView里面的代理方法有这个形参,表示第几个section,第几个row。
NSSet:无序的集合,不允许重复元素
一个app bundle基本上包括:
1:可执行文件
2:配置文件(例如Info.plist)
3:app icon(也就是小图标),一般要四张(Icon.png Icon@2x.png Icon-Small.png Icon- Small@2x.png)
4:app launch的图标
5:xib或者storyboard文件
6:iTunesArtwork
7:公开自定义自己的setting(也就是偏好设置),那么要有setting.bundle
8:本地化资源文件,比如图片,声音,使用的plist文件等
9:多国语言(en.lproj fr.lproj es.lproj,英国、法国、西班牙)
app的状态有五种:
1:not running:没有启动app
2:inactive:app运行在前台,但是没有任何事件的处理
3:active:app运行在前台,并且在处理事件
4:background:app在后台运行,还在内存中,并且执行代码
5:suspend:app还在内存中,但是不运行任何代码,如果内存不足,会自动kill掉
app states changes:
lanch app的方式有两种,一种是直接lanch到前台,展现给用户,一种是直接lanch到后台
两种方式的执行步骤:
直接lanch到前台前台
直接lanch到后台
觉得lanch到前台还是后台可以通过willFinishLaunchingWithOptions:或didFinishLaunchingWithOptions:这两个方法里设置applicationState为UIApplicationStateBackground或者UIApplicationStateInactive.
lanch的过程主要是对UIKit库的处理:
对于UIKIT_EXTERN int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName)的后面两个参数,一般都为nil,它代表的含义是:第三个参数默认为是@"UIApplication",这个参数必须是UIApplication或其子类的名字,它代表着当前iPhone程序本身,这个程序会去读info.plist文件获取配置信息,一个重要的信息是Main nib file base name(主nib文件)的值,一般为MainWindow(.xib),第四个参数为MainWindow.xib文件中遵循UIApplicationDelegate的类的类名,因为UIApplication定义了一个delegte变量,这个变量应该遵循UIApplicationDelegate,负责控制程序的运行,在主nib文件中,你应该创建一个继承于Object,并遵循UIApplicationDelegate的类,如果主nib文件没有这个类,你应该自定义一个这样的类,并将第四个参数改为这个类的类名,否则这个程序不知道如何进行运作,因为前三个参数代表应用程序本身,它除了把应用的事件循环启动起来,并读取info.plist里的配置信息,不做其它任何事情。
app lanch之后干了些什么,调用delegate
application:willFinishLaunchingWithOptions: and
application:didFinishLaunchingWithOptions
检查内容和相应是否都ok,初始化关键数据,准备view和window显示
如果在lanch time你没有指定nib或者storybord,那么你可以在willFinishLaunchingWithOptions:中指定,不过这个两个方法尽量不要用,为了启动更快,app启动一般被设计成不超过5s,如果lanch到的前台,那么还要调用方法applicationDidBecomeActive:
IOS的对中断的处理:
app从前台切换到后台:
会有一个通知:UIApplicationDidEnterBackgroundNotification
app从后台切换到前台
会有一个通知:UIApplicationWillEnterForegroundNotification
app在被唤醒的过程中,有一系列的通知,如果注册了这些通知,那么可以收到相关通知
比如被唤醒的app所存储的数据被修改了,那么可以注册这个通知,然后被唤醒的时候,可以告知用户。
app被kill的时候会调用applicationWillTerminate:
The Main Run Loop:
检查是否支持多线程代码(IOS4之后支持):
长时间在后台运行的程序,有几种情况:
1:类似音乐播放器这种应用。
2:类似导航类应用,需要不停的把位置信息。
3:下载上传等应用
4:更新应用的操作
5:app支持VoIP协议
如果需要后台运行程序,需要再plist文件中定赋值UIBackgroundModes
ios ui 保存(http://blog.csdn.net/tonny_guan/article/details/8547903):
ios ui 恢复
连接到app store的代码:
自定义URL,打开自己开发的app:
http://www.2cto.com/kf/201301/187156.html
关闭自动锁屏功能:
set the idleTimerDisabled property of the shared UIApplication object to
YES
在更新app的时候,一下两个目录会被保存:
<Application_Home> /Documents
<Application_Home> /Library
icloud和itunes不会备份以下目录:
<Application_Home> /AppName .app
<Application_Home> /Library/Caches
<Application_Home> /tmp
内存警告时,会调用applicationDidReceiveMemoryWarning:(这个是appdelegate的);didReceiveMemoryWarning(这个是viewcontroller)或者注册UIApplicationDidReceiveMemoryWarningNotificationnotification.通知
减少app的内存方法:
1:减少内存泄露
2:资源文件尽量小
3:使用core data或则sqllite存储大文件
4:懒加载
5:使用thumb指令集,编译代码使用-mthumb参数
明智的分配内存
1:尽量少用autorelease
2:根据size来分配内存,不要小对象分配了大内存
节省电池寿命:
1:尽量不要使用轮训,用NSRunLoop or NSTimer来替代轮训
2:set idleTimerDisabled 为no
3:尽量合并处理事务,使cpu空闲
4:避免频繁读写磁盘
5:关闭地理位置开关,当你不用的时候
6:屏幕滑动不要太快
7:使用wifi会更省电
使用UIRequiresPersistentWiFi来设置wifi,可以在plist文件中设置
每个app都有自己的一个sandbox环境,主要出于安全考虑, iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,应用程序不能翻过自己的围墙去访问别的存储空间的内容。
sandbox的目录结构:
默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。因为应用的沙盒机制,应用只能在几个目录下读写文件
Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录
Library:存储程序的默认设置或其它状态信息;
Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除
tmp:提供一个即时创建临时文件的地方。
iTunes在与iPhone同步时,备份所有的Documents和Library文件。
iPhone在重启时,会丢弃所有的tmp文件。
用keychain进行数据加密,可以使用苹果官方发布的KeychainItemWrapper或者SFHFKeychainUtils
1:堆积方式:sdk提供的控件,你一个一个往上加,搭建起来就ok
2:用openGL es绘图,如果你的应用程序需要频繁的画面更新或复杂的渲染,那么使用它,一般游戏会使用这种。
数据模型:
String: NSString(NSMutableString)
NSAttributedString(NSMutableAttributed-String)
Numbers:NSNumber NSDecimalNumber NSIndexPath
Raw bytes:NSData (NSMutableData) NSValue
Dates and times:NSDate NSDateComponents
URLs:NSURL
Collections:NSArray(NSMutableArray) NSDictionary(NSMutableDictionary)
NSIndexSet(NSMutableIndexSet) NSOrderedSet(NSMutableOrderedSet)
NSSet (NSMutableSet)
NSAttributedString:可以根据下标来设置字符串的颜色,字体大小等属性。
NSNumber:继承自NSValue,使用NSValue来辅助我们实现一些简单数据结构的封装,可以搜索下。
NSDecimalNumber:继承NSNumber,用科学计数来表示,10的n次
NSIndexPath:tableView里面的代理方法有这个形参,表示第几个section,第几个row。
NSSet:无序的集合,不允许重复元素
一个app bundle基本上包括:
1:可执行文件
2:配置文件(例如Info.plist)
3:app icon(也就是小图标),一般要四张(Icon.png Icon@2x.png Icon-Small.png Icon- Small@2x.png)
4:app launch的图标
5:xib或者storyboard文件
6:iTunesArtwork
7:公开自定义自己的setting(也就是偏好设置),那么要有setting.bundle
8:本地化资源文件,比如图片,声音,使用的plist文件等
9:多国语言(en.lproj fr.lproj es.lproj,英国、法国、西班牙)
app的状态有五种:
1:not running:没有启动app
2:inactive:app运行在前台,但是没有任何事件的处理
3:active:app运行在前台,并且在处理事件
4:background:app在后台运行,还在内存中,并且执行代码
5:suspend:app还在内存中,但是不运行任何代码,如果内存不足,会自动kill掉
app states changes:

lanch app的方式有两种,一种是直接lanch到前台,展现给用户,一种是直接lanch到后台
两种方式的执行步骤:
直接lanch到前台前台

直接lanch到后台

觉得lanch到前台还是后台可以通过willFinishLaunchingWithOptions:或didFinishLaunchingWithOptions:这两个方法里设置applicationState为UIApplicationStateBackground或者UIApplicationStateInactive.
lanch的过程主要是对UIKit库的处理:
#import <UIKit/UIKit.h> int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([MyAppDelegate class])); } }
对于UIKIT_EXTERN int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName)的后面两个参数,一般都为nil,它代表的含义是:第三个参数默认为是@"UIApplication",这个参数必须是UIApplication或其子类的名字,它代表着当前iPhone程序本身,这个程序会去读info.plist文件获取配置信息,一个重要的信息是Main nib file base name(主nib文件)的值,一般为MainWindow(.xib),第四个参数为MainWindow.xib文件中遵循UIApplicationDelegate的类的类名,因为UIApplication定义了一个delegte变量,这个变量应该遵循UIApplicationDelegate,负责控制程序的运行,在主nib文件中,你应该创建一个继承于Object,并遵循UIApplicationDelegate的类,如果主nib文件没有这个类,你应该自定义一个这样的类,并将第四个参数改为这个类的类名,否则这个程序不知道如何进行运作,因为前三个参数代表应用程序本身,它除了把应用的事件循环启动起来,并读取info.plist里的配置信息,不做其它任何事情。
app lanch之后干了些什么,调用delegate
application:willFinishLaunchingWithOptions: and
application:didFinishLaunchingWithOptions
检查内容和相应是否都ok,初始化关键数据,准备view和window显示
如果在lanch time你没有指定nib或者storybord,那么你可以在willFinishLaunchingWithOptions:中指定,不过这个两个方法尽量不要用,为了启动更快,app启动一般被设计成不超过5s,如果lanch到的前台,那么还要调用方法applicationDidBecomeActive:
IOS的对中断的处理:

app从前台切换到后台:

会有一个通知:UIApplicationDidEnterBackgroundNotification
app从后台切换到前台

会有一个通知:UIApplicationWillEnterForegroundNotification
app在被唤醒的过程中,有一系列的通知,如果注册了这些通知,那么可以收到相关通知
比如被唤醒的app所存储的数据被修改了,那么可以注册这个通知,然后被唤醒的时候,可以告知用户。
app被kill的时候会调用applicationWillTerminate:
The Main Run Loop:

检查是否支持多线程代码(IOS4之后支持):
UIDevice* device = [UIDevice currentDevice]; BOOL backgroundSupported = NO; if ([device respondsToSelector:@selector(isMultitaskingSupported)]) backgroundSupported = device.multitaskingSupported;
长时间在后台运行的程序,有几种情况:
1:类似音乐播放器这种应用。
2:类似导航类应用,需要不停的把位置信息。
3:下载上传等应用
4:更新应用的操作
5:app支持VoIP协议
如果需要后台运行程序,需要再plist文件中定赋值UIBackgroundModes
ios ui 保存(http://blog.csdn.net/tonny_guan/article/details/8547903):

ios ui 恢复

连接到app store的代码:
NSURL *myURL = [NSURL URLWithString:@"todolist://www.acme.com?Quarterly%20Report#200806231300"]; [[UIApplication sharedApplication] openURL:myURL];
自定义URL,打开自己开发的app:
http://www.2cto.com/kf/201301/187156.html
关闭自动锁屏功能:
set the idleTimerDisabled property of the shared UIApplication object to
YES
在更新app的时候,一下两个目录会被保存:
<Application_Home> /Documents
<Application_Home> /Library
icloud和itunes不会备份以下目录:
<Application_Home> /AppName .app
<Application_Home> /Library/Caches
<Application_Home> /tmp
内存警告时,会调用applicationDidReceiveMemoryWarning:(这个是appdelegate的);didReceiveMemoryWarning(这个是viewcontroller)或者注册UIApplicationDidReceiveMemoryWarningNotificationnotification.通知
减少app的内存方法:
1:减少内存泄露
2:资源文件尽量小
3:使用core data或则sqllite存储大文件
4:懒加载
5:使用thumb指令集,编译代码使用-mthumb参数
明智的分配内存
1:尽量少用autorelease
2:根据size来分配内存,不要小对象分配了大内存
节省电池寿命:
1:尽量不要使用轮训,用NSRunLoop or NSTimer来替代轮训
2:set idleTimerDisabled 为no
3:尽量合并处理事务,使cpu空闲
4:避免频繁读写磁盘
5:关闭地理位置开关,当你不用的时候
6:屏幕滑动不要太快
7:使用wifi会更省电
使用UIRequiresPersistentWiFi来设置wifi,可以在plist文件中设置
每个app都有自己的一个sandbox环境,主要出于安全考虑, iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,应用程序不能翻过自己的围墙去访问别的存储空间的内容。
sandbox的目录结构:
默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。因为应用的沙盒机制,应用只能在几个目录下读写文件
Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录
Library:存储程序的默认设置或其它状态信息;
Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除
tmp:提供一个即时创建临时文件的地方。
iTunes在与iPhone同步时,备份所有的Documents和Library文件。
iPhone在重启时,会丢弃所有的tmp文件。
用keychain进行数据加密,可以使用苹果官方发布的KeychainItemWrapper或者SFHFKeychainUtils
- iPhoneAppProgrammingGuide.pdf (2.1 MB)
- 下载次数: 19
发表评论
-
URL System Programming Guide
2014-11-11 09:44 1227支持五种协议:ftp:// http:// ... -
Runtime programming guide
2014-10-26 01:23 1117objective-c有两个版本的ru ... -
OpenGL Programming Guide
2013-04-16 10:10 0XXXXXX -
Location Awareness Programming Guide
2013-04-14 12:19 0两个核心的framework: Cor ... -
Audio Session Programming Guide
2013-04-11 20:32 2921Audio Session:自己开发的应用和IOS应用程序处理 ... -
Event programming guide
2013-04-09 19:02 2132Phone中处理触摸屏的操作,在3.2之前是主要使用的是由UI ... -
Instruments User Guide
2013-04-02 19:32 0打开Instruments方式: 1:Xcode > O ... -
CFNetwork Programming Guide
2013-04-01 20:40 4274CFNetwork封装了具体的网路实现,可以通过CFxxx等a ... -
bundle programing guide
2013-03-31 10:50 3445CF 意思是Core Foundation bundle在i ... -
Core Data Tutorial
2013-03-20 15:20 1567core data支持IOS 3以后的系统。 Core Dat ... -
ios 国际化
2013-03-19 16:25 0需要你本身的应用支持国际化,主要是project->in ... -
view controller program guide
2013-03-13 13:22 0navigation controller A view c ... -
ad hoc证书
2013-02-28 23:22 1684iOS证书分2种,1种是开发证书,用来给你(开发人员)做真机测 ... -
使用vpn在mac
2013-02-25 19:25 0http://blog.sina.com.cn/s/blog_ ... -
为APNS制作和生成证书
2013-02-25 17:32 0首先制作一个证书申请文件(.csr)文件,然后创建一个appi ... -
安装苹果的ipa文件到iphone
2013-02-22 17:29 3350苹果的ipa文件安装方式有好多种,我介绍的是最常用的安装ipa ... -
About the Tools Workflow for iOS
2013-02-26 21:51 2155查看自己的开发角色是agent、admin、member。 只 ... -
基本概念
2013-02-21 22:27 0ios开发准备流程:http://hi.baidu.com/s ... -
About the iOS Technologies(关于 iOS 技术简介)
2013-02-21 14:30 993官方文档:https://developer.apple.co ... -
Doxygen for Xcode
2013-02-21 10:53 1903IOS Developer Library 中的article ...
相关推荐
**iOS App Programming Guide(2012-09-19版)** 这个标题指出了文档的主题是关于iOS应用程序开发的官方指南,并且明确指出该版本发布于2012年9月19日。对于想要了解特定时期iOS开发实践的专业人士来说,这是一个非常...
iOS应用编程指南涵盖了iOS应用开发的全流程,其中详细讲解了应用设计的基础知识、核心对象的构建、应用状态管理与多任务处理、资源的使用,以及状态保存与恢复机制。为了深入理解iOS应用开发,开发者需要熟悉UIKit...
在《iPhone App Programming Guide》中,首先介绍了关于 iOS 应用架构的基本概念与原则。这部分内容是开发者了解如何构建高效、可扩展的应用的基础。 #### 应用应支持的关键特性 应用需要支持一系列关键功能,如多...
《iOS应用编程指南》是苹果公司提供的官方技术文档,旨在指导开发者如何使用Xcode在iOS平台上开发应用程序。该指南覆盖了从应用设计、开发到性能优化的整个过程,并强调了用户隐私保护和状态保存与恢复的重要性。 ...
The tag "programming guide" suggests that the document provides detailed instructions and best practices for iOS app development. #### Partial Content The partial content provides legal information...
这份文档名为“iPhone App Programming Guide”,是一份苹果公司为iOS平台iPhone应用程序开发者提供的编程指南。文档详细介绍了iOS应用架构、应用生命周期、后台执行策略、隐私保护、性能优化等多个方面的内容。接...
Apple的CarPlay是将iOS设备与汽车娱乐系统集成的一种方式,为驾驶员提供了安全、便捷的互动体验。本编程指南旨在帮助开发者创建适用于CarPlay的应用程序,确保用户在驾驶时可以访问关键功能,同时遵守严格的安全标准...
标题《iPhone App Programming Guide》所涉及的知识点包括但不限于以下内容: 1. iOS编程概述:文档是苹果公司提供的官方iOS编程手册,用于指导开发者了解和掌握在iOS平台上的编程方法和原则。它涵盖了从基础的应用...
本文档之前命名为iPhone OS编程指南。 iPhone SDK为创建iPhone的本地应用程序提供必需的工具和资源。在用户的 Home屏幕上,iPhone的本地应用程序表示为图标。它们和运行在Safari内部 的web应用程序不同,在基于...
Once you master the fundamentals, you’ll be ready to tackle the details of iOS app development with author Matt Neuburg’s companion guide, Programming iOS 7—coming in December 2013., Explore the C...
本书《iOS Programming The Big Nerd Ranch Guide》第三版是一本专注于iOS编程的指导书,旨在教授读者iOS编程的基本概念。本书采用了一种边学边做的方法,即在学习理论的同时,通过大量的代码实践和应用程序的构建,...
### iOS SDK Programming: A Beginner’s Guide #### 一、概览 《iOS SDK Programming: A Beginner’s Guide》是一本专为初学者设计的iOS应用程序开发教程。本书由James A. Brannan和Blake Ward共同撰写,并由...
34. A Guide to Multitasking in iOS 10 35. An iOS 10 Multitasking Example 36. Working with Directories in Swift on iOS 10 37. Working with Files in Swift on iOS 10 38. iOS 10 Directory Handling and ...