- 浏览: 438757 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (538)
- C/C++ Primer (69)
- Objective-C Primer (102)
- Python Primer (19)
- JavaScript Primer (1)
- Java Primer (37)
- PHP Primer (17)
- 泛 Linux (37)
- Shell Script (21)
- APUE (21)
- UNP__1&2 (19)
- NetWork (7)
- Oracle周边 (38)
- Mysql里边 (6)
- Windows技 (9)
- 简单算法 & 数据结构 (14)
- 设计模式 (6)
- GTK历程 (12)
- 工具使用 (25)
- 杂事 (23)
- 一些概念 (17)
- Web方面 (10)
- myCodeTools (9)
- ^未 竟$ (13)
- 硬件通信 (2)
- Games (1)
最新评论
http://blog.csdn.net/a0199133/article/details/7048215
因为大量使用NSDocumentDirectory,被apple拘了-.-
又来补课,貌似少量的就没事。
http://www.cnblogs.com/v2m_/archive/2011/11/11/2245726.html
首选项设置存储
NSUserDefaults 以及通过它控制的SettingBundle NSUserDefaults 用来保存一些设置,他会自动写到何时的位置。
NSUbiquitousKeyValueStore 多平台同步设置,限制是大小64k,开启entitlement,唯一Apple ID(还要考虑无法连接到iCloud网络时的情形)
文件存储
一.目录描述
<Application_Home>/AppName.app bundle目录,包括程序本身。往里面些东西会导致签名改变和重启程序。初始同步后iTunes不备份此目录。
<Application_Home>/Documents/ 存储用户文档和程序数据。通过文件共享可以使其可见。iTunes备份之。
<Application_Home>/Documents/Inbox 其他程序要求本程序打开的文档。可读删,不可增加修改。要改变可以先移出来。iTunes备份之。
<Application_Home>/Library/ 非用户数据文件存储的根目录。用其中标准或自定义的文件夹备份不被用户可见的数据。不应用这个目录存储用户数据。iTunes备份之。
~Library/Application Support/<bundle_ID> 为用户创建管理的资源和数据文件。用这个目录存储程序状态信息,下载的文件甚至用户创建但同意你管理的数据。自动保存文件。
~/Library/Caches/<bundle_ID> 用来存储缓存文件或者程序可以简单重建的文件的目录。
<Application_Home>/tmp/ 临时文件目录,可能被系统删除,不应期望始终存在。不被iTunes备份。
另:
离线数据
可以下载,或重新创建,但用户希望在离线时也能访问这些数据。存放在<Application_Home>/Documents 或<Application_Home>/Library/Private Documents ,并标记为"do not backup"。这两个位置的数据在低存储空间时都会保留,而"do not backup"属性会阻止iTunes或iCloud备份。应用不再需要离线数据文件时,应该尽快删除,以避免浪费用户的存储空间。
设置do not back up属性
#include <sys/xattr.h>
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
const char* filePath = [[URL path] fileSystemRepresentation];
const char* attrName = "com.apple.MobileBackup";
u_int8_t attrValue = 1;
int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
return result == 0;
}
得到目录地址
URLsForDirectory:inDomains: method 返回NSURL形式的目录地址
NSSearchPathForDirectoriesInDomains 返回字符串形式的目录地址
NSHomeDirectory 返回程序根目录
NSTemporaryDirectory 返回临时文件目录
相关变量定义
NSSearchPathDirectory
enum {
NSApplicationDirectory = 1,//Supported applications (/Applications)
NSDemoApplicationDirectory,//Unsupported applications and demonstration versions
NSDeveloperApplicationDirectory,//Developer applications (/Developer/Applications)
NSAdminApplicationDirectory,//System and network administration applications
NSLibraryDirectory,//Various user-visible documentation, support, and configuration files (/Library)
NSDeveloperDirectory,//Developer resources (/Developer)
NSUserDirectory,//User home directories (/Users)
NSDocumentationDirectory,//
NSDocumentDirectory,//
NSCoreServiceDirectory,//Location of core services (System/Library/CoreServices)
NSAutosavedInformationDirectory = 11,//Location of user’s autosaved documents Library/Autosave Information
NSDesktopDirectory = 12,//
NSCachesDirectory = 13,//Location of discardable cache files (Library/Caches)
NSApplicationSupportDirectory = 14,//Location of application support files (Library/Application Support)
NSDownloadsDirectory = 15,//
NSInputMethodsDirectory = 16,//
NSMoviesDirectory = 17,//
NSMusicDirectory = 18,//
NSPicturesDirectory = 19,//
NSPrinterDescriptionDirectory = 20,//
NSSharedPublicDirectory = 21,//
NSPreferencePanesDirectory = 22,//
NSItemReplacementDirectory = 99,//
NSAllApplicationsDirectory = 100,//
NSAllLibrariesDirectory = 101//
};
typedef NSUInteger NSSearchPathDirectory;
enum {
NSUserDomainMask = 1,//用户主目录中
NSLocalDomainMask = 2,//当前机器中
NSNetworkDomainMask = 4,//网络中可见的主机
NSSystemDomainMask = 8,//系统目录,不可修改(/System)
NSAllDomainsMask = 0x0ffff,//全部
};
typedef NSUInteger NSSearchPathDomainMask;
二.存储方式
(一).属性列表(plist)
array,dictionary,data,string,NSNumber,NSDate 等ns对象直接写入plist文件中保存.
(二).归档文件
实现NSCoding协议(NSCopy也要实现?没实现也成功了。。)
编解码类说明
NSKeyedArchiver
创建
- (id)initForWritingWithMutableData:(NSMutableData *)data // 归档数据写到data中
归档数据
+ (NSData *)archivedDataWithRootObject:(id)rootObject // 归档到data中
+ (BOOL)archiveRootObject:(id)rootObject toFile:(NSString *)path // 归档到文件中
- (void)finishEncoding // 调用后不能继续归档数据,归档结束必须调用(公共方法归档的不用理这个了)
– outputFormat // data编码方式,xml还是二进制
– setOutputFormat:
编码数据
– encodeBool:forKey:
– encodeBytes:length:forKey:
– encodeConditionalObject:forKey:
– encodeDouble:forKey:
– encodeFloat:forKey:
– encodeInt:forKey:
– encodeInt32:forKey:
– encodeInt64:forKey:
– encodeObject:forKey:
代理委托
– delegate
– setDelegate:
– archiver:didEncodeObject:
– archiverDidFinish:
– archiver:willEncodeObject:
– archiverWillFinish:
– archiver:willReplaceObject:withObject:
类和类名
+ setClassName:forClass:
+ classNameForClass:
– setClassName:forClass:
– classNameForClass:
异常
extern NSString *NSInvalidArchiveOperationException;
NSKeyedUnarchiver
创建
– initForReadingWithData:
取消归档
+ (id)unarchiveObjectWithData:(NSData *)data // 从data中得到实现归档的对象
+ (id)unarchiveObjectWithFile:(NSString *)path // 从文件中得到
解码数据
- (BOOL)containsValueForKey:(NSString *)key // 是否包含给定的key编码对象
– decodeBoolForKey:
– decodeBytesForKey:returnedLength:
– decodeDoubleForKey:
– decodeFloatForKey:
– decodeIntForKey:
– decodeInt32ForKey:
– decodeInt64ForKey:
– decodeObjectForKey:
- (void)finishDecoding // 通知委托解码结束,调用后不能再继续解码
代理委托
– delegate
– setDelegate:
– unarchiver:cannotDecodeObjectOfClassName:originalClasses:
– unarchiver:didDecodeObject:
– unarchiver:willReplaceObject:withObject:
Finishing Decoding
– unarchiverDidFinish:
– unarchiverWillFinish:
类名
+ setClass:forClassName:
+ classForClassName:
– setClass:forClassName:
– classForClassName:
异常
NSString *NSInvalidUnarchiveOperationException;
(三).CoreData
xcdatamodeld文件中Entity的三种属性:
Attributes: 对应的Obj-c类的接口变量.
Relationships: Entity之间的关系,to-one,or to-many.
Fetched properties: 对上面Relationship的过滤?参考参考1
对应文件存储形式
COREDATA_EXTERN NSString * const NSSQLiteStoreType NS_AVAILABLE(10_4, 3_0);// SQLite形式存储
COREDATA_EXTERN NSString * const NSXMLStoreType NS_AVAILABLE(10_4, NA);// ios不可用
COREDATA_EXTERN NSString * const NSBinaryStoreType NS_AVAILABLE(10_4, 3_0);// 二进制形式存储
COREDATA_EXTERN NSString * const NSInMemoryStoreType NS_AVAILABLE(10_4, 3_0);// 内存中
基本使用过程(括号中参考sql术语)
NSManagedObjectModel对象 获取工程中xcdatamodeld文件设置的模版(就是你的数据库有哪些表,表中有哪些字段的一种说明)
NSPersistentStoreCoordinator对象 根据上面的模版生成或对应的一个文件(数据库文件,具体的数据文件)
NSManagedObjectContext对象 上面文件的操作的空间,增删改查都通过这里进行
NSEntityDescription对象 得到上面context中的一个表
NSFetchRequest对象 对上面表的一些具体操作,增删改查
- (NSArray *)executeFetchRequest:(NSFetchRequest *)request error:(NSError **)error; 使用这个方法执行上面的request
如果增删改了context,记得保存。结束
过程示例:
NSManagedObjectContext *managedObjectContext = nil;
// 得到模版
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"YOUR_XCDATAMODELD_FILE_NAME" withExtension:@"momd"];
NSManagedObjectModel* managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
// 具体文件,DOCUMENT_DICRECTORY应该是nsurl的..
NSURL *storeURL = [@"DOCUMENT_DICRECTORY" URLByAppendingPathComponent:@"SQLITE.sqlite"];
NSError *error = nil;
NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel];
// 使用SQLite存储
if (![coordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
// 出错
}
else
{
// 得到操作空间
managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator:coordinator];
}
// 得到具体的表
NSEntityDescription *entityDescription = [NSEntityDescription
entityForName:@"ONE_ENTITY_NAME"
inManagedObjectContext:managedObjectContext];
// 操作语句
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
// 操作语句的条件
NSPredicate *pred = [NSPredicate predicateWithFormat:@"PREDICATE_SECTION"];
[request setPredicate:pred];
NSManagedObject *manageObject = nil;
// 执行操作,得到多条具体数据
NSArray *objects = [managedObjectContext executeFetchRequest:request error:&error];
if (objects == nil) {
// 出错
}
if ([objects count] > 0)
// 多条,取第一条
manageObject = [objects objectAtIndex:0];
else
// 没有相应的,就创建
manageObject = [NSEntityDescription
insertNewObjectForEntityForName:@"TABLE_NAME"
inManagedObjectContext:managedObjectContext];
// 改变她的一个字段的值
[manageObject setValue:@"VALUE" forKey:@"ONE_FIELD_NAME_OF_THE_TABLE"];
[request release];
// 保存,结束
[managedObjectContext save:&error];
(四).SQLite
引入SQLite库,加入头文件,使用C API操作.繁琐的地方在于只能存储c数据格式,需要来回转换.
过程示例:
// 声明数据库
sqlite3 *database;
// 打开
if (sqlite3_open("数据库文件路径", &database) != SQLITE_OK) {
sqlite3_close(database);
// 出错
}
char *errorMsg;
// 执行无返回语句
if (sqlite3_exec (database, "增删改创语句",NULL, NULL, &errorMsg) != SQLITE_OK) {
sqlite3_close(database);
// 出错
}
sqlite3_stmt *statement;
// 执行查询语句
if (sqlite3_prepare_v2(database, "查询语句",-1, &statement, nil) == SQLITE_OK) {
// 遍历结果
while (sqlite3_step(statement) == SQLITE_ROW) {
int row = sqlite3_column_int(statement, 0);
// 第一列数据
char *rowData = (char *)sqlite3_column_text(statement, 1);
}
// 结束遍历
sqlite3_finalize(statement);
}
// 关闭数据库
sqlite3_close(database);
因为大量使用NSDocumentDirectory,被apple拘了-.-
又来补课,貌似少量的就没事。
http://www.cnblogs.com/v2m_/archive/2011/11/11/2245726.html
首选项设置存储
NSUserDefaults 以及通过它控制的SettingBundle NSUserDefaults 用来保存一些设置,他会自动写到何时的位置。
NSUbiquitousKeyValueStore 多平台同步设置,限制是大小64k,开启entitlement,唯一Apple ID(还要考虑无法连接到iCloud网络时的情形)
文件存储
一.目录描述
<Application_Home>/AppName.app bundle目录,包括程序本身。往里面些东西会导致签名改变和重启程序。初始同步后iTunes不备份此目录。
<Application_Home>/Documents/ 存储用户文档和程序数据。通过文件共享可以使其可见。iTunes备份之。
<Application_Home>/Documents/Inbox 其他程序要求本程序打开的文档。可读删,不可增加修改。要改变可以先移出来。iTunes备份之。
<Application_Home>/Library/ 非用户数据文件存储的根目录。用其中标准或自定义的文件夹备份不被用户可见的数据。不应用这个目录存储用户数据。iTunes备份之。
~Library/Application Support/<bundle_ID> 为用户创建管理的资源和数据文件。用这个目录存储程序状态信息,下载的文件甚至用户创建但同意你管理的数据。自动保存文件。
~/Library/Caches/<bundle_ID> 用来存储缓存文件或者程序可以简单重建的文件的目录。
<Application_Home>/tmp/ 临时文件目录,可能被系统删除,不应期望始终存在。不被iTunes备份。
另:
离线数据
可以下载,或重新创建,但用户希望在离线时也能访问这些数据。存放在<Application_Home>/Documents 或<Application_Home>/Library/Private Documents ,并标记为"do not backup"。这两个位置的数据在低存储空间时都会保留,而"do not backup"属性会阻止iTunes或iCloud备份。应用不再需要离线数据文件时,应该尽快删除,以避免浪费用户的存储空间。
设置do not back up属性
#include <sys/xattr.h>
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
const char* filePath = [[URL path] fileSystemRepresentation];
const char* attrName = "com.apple.MobileBackup";
u_int8_t attrValue = 1;
int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
return result == 0;
}
得到目录地址
URLsForDirectory:inDomains: method 返回NSURL形式的目录地址
NSSearchPathForDirectoriesInDomains 返回字符串形式的目录地址
NSHomeDirectory 返回程序根目录
NSTemporaryDirectory 返回临时文件目录
相关变量定义
NSSearchPathDirectory
enum {
NSApplicationDirectory = 1,//Supported applications (/Applications)
NSDemoApplicationDirectory,//Unsupported applications and demonstration versions
NSDeveloperApplicationDirectory,//Developer applications (/Developer/Applications)
NSAdminApplicationDirectory,//System and network administration applications
NSLibraryDirectory,//Various user-visible documentation, support, and configuration files (/Library)
NSDeveloperDirectory,//Developer resources (/Developer)
NSUserDirectory,//User home directories (/Users)
NSDocumentationDirectory,//
NSDocumentDirectory,//
NSCoreServiceDirectory,//Location of core services (System/Library/CoreServices)
NSAutosavedInformationDirectory = 11,//Location of user’s autosaved documents Library/Autosave Information
NSDesktopDirectory = 12,//
NSCachesDirectory = 13,//Location of discardable cache files (Library/Caches)
NSApplicationSupportDirectory = 14,//Location of application support files (Library/Application Support)
NSDownloadsDirectory = 15,//
NSInputMethodsDirectory = 16,//
NSMoviesDirectory = 17,//
NSMusicDirectory = 18,//
NSPicturesDirectory = 19,//
NSPrinterDescriptionDirectory = 20,//
NSSharedPublicDirectory = 21,//
NSPreferencePanesDirectory = 22,//
NSItemReplacementDirectory = 99,//
NSAllApplicationsDirectory = 100,//
NSAllLibrariesDirectory = 101//
};
typedef NSUInteger NSSearchPathDirectory;
enum {
NSUserDomainMask = 1,//用户主目录中
NSLocalDomainMask = 2,//当前机器中
NSNetworkDomainMask = 4,//网络中可见的主机
NSSystemDomainMask = 8,//系统目录,不可修改(/System)
NSAllDomainsMask = 0x0ffff,//全部
};
typedef NSUInteger NSSearchPathDomainMask;
二.存储方式
(一).属性列表(plist)
array,dictionary,data,string,NSNumber,NSDate 等ns对象直接写入plist文件中保存.
(二).归档文件
实现NSCoding协议(NSCopy也要实现?没实现也成功了。。)
编解码类说明
NSKeyedArchiver
创建
- (id)initForWritingWithMutableData:(NSMutableData *)data // 归档数据写到data中
归档数据
+ (NSData *)archivedDataWithRootObject:(id)rootObject // 归档到data中
+ (BOOL)archiveRootObject:(id)rootObject toFile:(NSString *)path // 归档到文件中
- (void)finishEncoding // 调用后不能继续归档数据,归档结束必须调用(公共方法归档的不用理这个了)
– outputFormat // data编码方式,xml还是二进制
– setOutputFormat:
编码数据
– encodeBool:forKey:
– encodeBytes:length:forKey:
– encodeConditionalObject:forKey:
– encodeDouble:forKey:
– encodeFloat:forKey:
– encodeInt:forKey:
– encodeInt32:forKey:
– encodeInt64:forKey:
– encodeObject:forKey:
代理委托
– delegate
– setDelegate:
– archiver:didEncodeObject:
– archiverDidFinish:
– archiver:willEncodeObject:
– archiverWillFinish:
– archiver:willReplaceObject:withObject:
类和类名
+ setClassName:forClass:
+ classNameForClass:
– setClassName:forClass:
– classNameForClass:
异常
extern NSString *NSInvalidArchiveOperationException;
NSKeyedUnarchiver
创建
– initForReadingWithData:
取消归档
+ (id)unarchiveObjectWithData:(NSData *)data // 从data中得到实现归档的对象
+ (id)unarchiveObjectWithFile:(NSString *)path // 从文件中得到
解码数据
- (BOOL)containsValueForKey:(NSString *)key // 是否包含给定的key编码对象
– decodeBoolForKey:
– decodeBytesForKey:returnedLength:
– decodeDoubleForKey:
– decodeFloatForKey:
– decodeIntForKey:
– decodeInt32ForKey:
– decodeInt64ForKey:
– decodeObjectForKey:
- (void)finishDecoding // 通知委托解码结束,调用后不能再继续解码
代理委托
– delegate
– setDelegate:
– unarchiver:cannotDecodeObjectOfClassName:originalClasses:
– unarchiver:didDecodeObject:
– unarchiver:willReplaceObject:withObject:
Finishing Decoding
– unarchiverDidFinish:
– unarchiverWillFinish:
类名
+ setClass:forClassName:
+ classForClassName:
– setClass:forClassName:
– classForClassName:
异常
NSString *NSInvalidUnarchiveOperationException;
(三).CoreData
xcdatamodeld文件中Entity的三种属性:
Attributes: 对应的Obj-c类的接口变量.
Relationships: Entity之间的关系,to-one,or to-many.
Fetched properties: 对上面Relationship的过滤?参考参考1
对应文件存储形式
COREDATA_EXTERN NSString * const NSSQLiteStoreType NS_AVAILABLE(10_4, 3_0);// SQLite形式存储
COREDATA_EXTERN NSString * const NSXMLStoreType NS_AVAILABLE(10_4, NA);// ios不可用
COREDATA_EXTERN NSString * const NSBinaryStoreType NS_AVAILABLE(10_4, 3_0);// 二进制形式存储
COREDATA_EXTERN NSString * const NSInMemoryStoreType NS_AVAILABLE(10_4, 3_0);// 内存中
基本使用过程(括号中参考sql术语)
NSManagedObjectModel对象 获取工程中xcdatamodeld文件设置的模版(就是你的数据库有哪些表,表中有哪些字段的一种说明)
NSPersistentStoreCoordinator对象 根据上面的模版生成或对应的一个文件(数据库文件,具体的数据文件)
NSManagedObjectContext对象 上面文件的操作的空间,增删改查都通过这里进行
NSEntityDescription对象 得到上面context中的一个表
NSFetchRequest对象 对上面表的一些具体操作,增删改查
- (NSArray *)executeFetchRequest:(NSFetchRequest *)request error:(NSError **)error; 使用这个方法执行上面的request
如果增删改了context,记得保存。结束
过程示例:
NSManagedObjectContext *managedObjectContext = nil;
// 得到模版
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"YOUR_XCDATAMODELD_FILE_NAME" withExtension:@"momd"];
NSManagedObjectModel* managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
// 具体文件,DOCUMENT_DICRECTORY应该是nsurl的..
NSURL *storeURL = [@"DOCUMENT_DICRECTORY" URLByAppendingPathComponent:@"SQLITE.sqlite"];
NSError *error = nil;
NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel];
// 使用SQLite存储
if (![coordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
// 出错
}
else
{
// 得到操作空间
managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator:coordinator];
}
// 得到具体的表
NSEntityDescription *entityDescription = [NSEntityDescription
entityForName:@"ONE_ENTITY_NAME"
inManagedObjectContext:managedObjectContext];
// 操作语句
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
// 操作语句的条件
NSPredicate *pred = [NSPredicate predicateWithFormat:@"PREDICATE_SECTION"];
[request setPredicate:pred];
NSManagedObject *manageObject = nil;
// 执行操作,得到多条具体数据
NSArray *objects = [managedObjectContext executeFetchRequest:request error:&error];
if (objects == nil) {
// 出错
}
if ([objects count] > 0)
// 多条,取第一条
manageObject = [objects objectAtIndex:0];
else
// 没有相应的,就创建
manageObject = [NSEntityDescription
insertNewObjectForEntityForName:@"TABLE_NAME"
inManagedObjectContext:managedObjectContext];
// 改变她的一个字段的值
[manageObject setValue:@"VALUE" forKey:@"ONE_FIELD_NAME_OF_THE_TABLE"];
[request release];
// 保存,结束
[managedObjectContext save:&error];
(四).SQLite
引入SQLite库,加入头文件,使用C API操作.繁琐的地方在于只能存储c数据格式,需要来回转换.
过程示例:
// 声明数据库
sqlite3 *database;
// 打开
if (sqlite3_open("数据库文件路径", &database) != SQLITE_OK) {
sqlite3_close(database);
// 出错
}
char *errorMsg;
// 执行无返回语句
if (sqlite3_exec (database, "增删改创语句",NULL, NULL, &errorMsg) != SQLITE_OK) {
sqlite3_close(database);
// 出错
}
sqlite3_stmt *statement;
// 执行查询语句
if (sqlite3_prepare_v2(database, "查询语句",-1, &statement, nil) == SQLITE_OK) {
// 遍历结果
while (sqlite3_step(statement) == SQLITE_ROW) {
int row = sqlite3_column_int(statement, 0);
// 第一列数据
char *rowData = (char *)sqlite3_column_text(statement, 1);
}
// 结束遍历
sqlite3_finalize(statement);
}
// 关闭数据库
sqlite3_close(database);
发表评论
-
float equal
2013-05-23 18:21 775- (BOOL)floatA:(float)f1 equalB ... -
Coding Guidelines for Cocoa
2013-05-17 16:53 629参考: https://developer.apple.com ... -
Cell
2013-05-16 14:32 745- (void)tableView:(UITableView ... -
Object-C编程规范
2013-05-15 10:49 6911.参考苹果的文档 “Coding Guidelines fo ... -
MacPorts
2013-02-28 18:12 568http://blog.csdn.net/lynjay/art ... -
KVC/KVO 监听对象属性变化
2013-01-10 23:09 7349http://blog.csdn.net/a6472953/a ... -
ios Associative 扩展属性
2013-01-08 16:45 1491@dynamic和@synthesize http://blo ... -
ObjC Dynamic
2013-01-08 15:21 738原文:http://www.onevcat.com/2012/ ... -
UITableView & UITextField
2012-11-08 00:35 790keyboard event ---------------- ... -
UIWebView
2012-10-24 11:06 712http://hi.baidu.com/wei_1123/it ... -
Device orientation
2012-10-15 16:20 693- (BOOL)shouldAutorotateToInter ... -
system notification
2012-10-12 15:22 588for UIApplication These notifi ... -
NSZombies
2012-08-09 08:51 626NSZombies搞定EXC_BAD_ACCESS http: ... -
Quartz 2D Programming Guide
2012-07-17 00:51 552Quartz 2D 内容不少啊 Graphics Trans ... -
NSCache
2012-07-12 14:25 710http://thenewself.blog.163.com/ ... -
NSCoding
2012-07-12 13:39 914@protocol NSCoding - (void ... -
分析 crash 报告的方法
2012-07-12 01:15 547http://blog.csdn.net/toss156/ar ... -
Multi-touch
2012-07-11 23:33 687智能与灵活与工作量>_< http://www.o ... -
iOS的多核编程和内存管理
2012-07-11 18:14 678http://anxonli.iteye.com/blog/1 ... -
NSCopying
2012-07-10 15:54 481http://www.apple.com.cn/develop ...
相关推荐
iOS开发 通用Utilities类 工具函数集合
UtilitiES UtilitiES UtilitiES UtilitiES UtilitiES
UTIlITIES UTIlITIES UTIlITIESOK
batch utilities.scpbatch utilities.scp
Norton Utilities15 破解补丁
史上最强大的TuneUp Utilities™ TuneUp Utilities™ 2012现在可供使用了,并且比以往任何时候都更好。改造过的Program Deactivator™可以将PC速度提高50 %。 崭新的TuneUp节能模式革命性地延长了电池寿命。TuneUp ...
常见的 iOS 工具库集合。.zip,Common iOS utilities that I've needed for my apps. Hopefully some are useful for yours.
TuneUp Utilities 是你PC的瑞士军刀——德国系统调校工具第一品牌 TuneUp Utilities,能优化系统性能、解决问题并帮助你定制系统,以满足你的需要!通过 TuneUp Utilities, 你能使 Windows 运行更快、更安全、更舒适...
TuneUp Utilities 2013 版本的破解文件 直接运行里面的keymaker就行 keygen工具 用过就知道该怎么用
MP3 Player Utilities v3.57 给MP3刷机用的。
Glary Utilities注册码
TuneUp Utilities 2013注册机 算号器,注册码大全,用来给TuneUp Utilities 2012,,2013版本注册的工具
软件英文,目前网上根本没有汉化版本,说有汉化...TuneUp Utilities 的功能应有尽有,主要工具包括:系统改造/分析、硬盘/登录文件清理、系统加速、记忆体最佳化、登录文件编辑、软件卸载、工作管理员、文件还原/清理。
TuneUp Utilities是来自德国的世界级系统优化软件,在2010版本时曾取中文名趣能系统优化专家,可能官方觉得这个名字太土,所以在TuneUp Utilities最新版本中取消了中文命名。由于TuneUp Utilities功能强大,使用简单...
TuneUp Utilities是一款德国的重量级系统优化软件。TuneUp Utilities 的功能应有尽有,主要工具包括:系统改造/分析、硬盘/登录文件清理、系统加速、记忆体最佳化、登录文件编辑、软件卸载、工作管理员、文件还原/...
DameWare NT Utilities 6.8.1.4汉化版
TuneUp.Utilities.2009电脑优化工具
DameWare NT Utilities 8.0.1.151破解版
TuneUp Utilities 2009 8.0.1100.43汉化绿色版(德国的系统调整工具) TuneUp Utilities 2009 8.0.1100汉化版 TuneUp Utilities 2009 汉化版 来自德国的系统调整工具,它能够让你的系统跑的更顺畅。TuneUp Utilities的...