随笔分类 - ObjC
摘要:转自:http://blog.csdn.net/devfun/article/details/7365774由于设计的游戏需要有一些联网请求,但有时候在设备未连接网络的情况下,如果对网络情况不加以判断,则可能造成游戏为了等游戏超时,浪费不必要的时间。所以在游戏启动时检测一下网络状况是很必要的,而且当玩家的设备连接上网络以后,有一个回调函数也是非常必要的一件事儿,这样可能更方便我们在后台下载数据库等信息。apple为我们提供了一套范例代码,下面我就来分析一下这段代码。范例代码地址在:https://developer.apple.com/library/ios/#samplecode/Reach
阅读全文
摘要:说明:每一个keyChain的组成如图,整体是一个字典结构.1.kSecClass key 定义属于那一种类型的keyChain2.不同的类型包含不同的Attributes,这些attributes定义了这个item的具体信息3.每个item可以包含一个密码项来存储对应的密码使用:引入Security包,引入文件 #import <Security/Security.h>添加- (IBAction)add:(id)sender { if (nameField.text.length > 0 && passwordField.text.length > 0
阅读全文
摘要:首选项设置存储NSUserDefaults以及通过它控制的SettingBundle NSUserDefaults 用来保存一些设置,他会自动写到何时的位置。NSUbiquitousKeyValueStore多平台同步设置,限制是大小64k,开启entitlement,唯一Apple ID(还要考虑无法连接到iCloud网络时的情形)文件存储一.目录描述<Application_Home>/AppName.app bundle目录,包括程序本身。往里面些东西会导致签名改变和重启程序。初始同步后iTunes不备份此目录。<Application_Home>/Documen
阅读全文
摘要:一.基本方式:使用UIView类的UIViewAnimation扩展函数说明+ (void)beginAnimations:(NSString *)animationID context:(void *)context; // 开始准备动画+ (void)commitAnimations; // 运行动画// 没有get方法,下面的set在快外调用无效+ (void)setAnimationDelegate:(id)delegate; // 委托default = nil+ (void)setAnimationWillStartSelector:(SEL)selector; // defaul
阅读全文
摘要:一.设置NSZombieEnabled使用NSZombieEnabled功能,当代码中访问已经释放了内存的地方,会给你下面这样的提示,而不仅仅是EXEC_BAD_ACCESS:2008-10-03 18:10:39.933 HelloWorld[1026:20b] *** -[GSFont ascender]: message sent to deallocated instance 0x126550如果要查看上面地址的分配情况开启MallocStackLogging(Xcode4勾选下MallocStackLogging就行)出错时shell malloc_history pid addre
阅读全文
摘要:在该项目的Build Phases -> Compile Soureces对不想使用arc的编译的源文件加上 -fno-objc-arc
阅读全文
摘要:概念当我们使用强参照(Strong reference)时,往往需要留意循环参照的问题。循环参照指的是两个对象被互相强参照,以至于任一对象都不能释放。一般情况下,当对象之间有“父子关系”时,强参照的情况发生的比较多。比如通讯薄对象AddrBook和每个通讯录Entry的关系如下。这种情况下,由于Entry对象被AddrBook强参照,所以不能释放。另一方面,如果Entry被释放了,AddrBook对象的强参照也就没有了,其对象也应被释放。解决方式像上面的例子,当多个对象间有“父子关系”时,需要在一侧用“弱参照”来解决循环参照问题。一般情况下,“父亲”作为“孩子”的拥有者,对“孩子”是强参照,而
阅读全文
摘要:根据苹果官方的文档(https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html):__bridge只做类型转换,但是不修改对象(内存)管理权;__bridge_retained(也可以使用CFBridgingRetain)将Objective-C的对象转换为Core Foundation的对象,同时将对象(内存)的管理权交给我们,后续需要使用CFRelease或者相关方法来释放对象;__bridge_transfer(也
阅读全文
摘要:Path路径:/etc/pathsiPhone虚拟机,APP安装路径:/Users/tsengyuen/Library/Application Support/iPhone Simulator各种框架路径,如Python:/System/Library/Frameworks/Python.frameworkPython第三放模块site-packages路径:/Library/Python/2.7/site-packages-------------------/usr/usr 目录是应用程序主要存放的目录。该目录中的二进制文件对系统启动和维护并非必要,因此整个 /usr 目录结构常会被存放到
阅读全文
摘要:你可能需要"Windows Explorer”式的方法来处理所有的隐藏文件夹和文件,即让所有文件(夹)显示出来,方便在程序中“打开”、拖拽等更直观的操作,那么请打开Terminal。Terminal类似Windows下的cmd,powershell等,如果你在Windows下不是一个"Commander",在Linux/Unix/Mac下你或许得慢慢适应使用命令行式的生活,因为它会让你的工作更快,浪费的时间更少,你会喜欢上它的!Terminal在Dock上是一个左上角写着">_"的“黑框”,位于Application/Utilities下
阅读全文
摘要:OSX 的文件系统OSX 采用的Unix文件系统,所有文件都挂在跟目录 / 下面,所以不在要有Windows 下的盘符概念。你在桌面上看到的硬盘都挂在 /Volumes 下。比如接上个叫做 USBHD的移动硬盘,桌面上会显示出一个硬盘图标,它实际在哪里呢?在终端里执行 ls /Volumes/USBHD, 看看显示出的是不是这个移动硬盘的内容。根目录位置是 / 核心 Mach_kernel 就在这里,驱动所在位置 /Systme/Library/Extensions用户文件夹位置 /User/用户名桌面的位置 /User/用户名/Desktop文件通配符为星号 *注意:在 Unix系统中是区别
阅读全文
摘要:iOS字符串加密至MD5 1 #import <CommonCrypto/CommonDigest.h> 2 3 + (NSString *) md5:(NSString *)str 4 { 5 const char *cStr = [str UTF8String]; 6 unsigned char result[16]; 7 CC_MD5( cStr, strlen(cStr), result ); 8 return [NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%...
阅读全文
摘要:Phone也支持访问本地数据库Sqlite 3。这里简单的介绍一下iPhone上Sqlite 3的使用方法。首先需要在项目中引用Sqlite 3的开发包,下面是在iPhone SDK 3.0下的目录:/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/lib/libsqlite3.0.dylib到这里你需要事先用命令来创建Sqlite 3的数据库文件,并在其中创建自己的表等等,然后作为资源文件添加到项目,然后在程序第一次运行的时候复制到程序下的Documents或其他目录下,关于Sqlite 3的基
阅读全文
摘要:iphone开发-SQLite数据库使用我现在要使用SQLite3.0创建一个数据库,然后在数据库中创建一个表格。首先要引入SQLite3.0的lib库。然后包含头文件#import <sqlite3.h>【1】打开数据库,如果没有,那么创建一个sqlite3* database_;-(BOOL) open{ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths ob
阅读全文
摘要:由于我主要负责我们小组项目数据库模块的部分所以这几天都一直在研究在iphone中最为常用的一个简单数据库sqlite,自己也搜集很多资料,因此在 这里总结一下这几天的学习成果:Sqlite 操作简明教程:http://hlee.javaeye.com/blog/359962iphone访问本地数据库sqlite3:http://blog.csdn.net/LuWei103/archive/2009/08/08 /4425045.aspxiphone访问本地数据库sqlite3:(本博客)http://www.cnblogs.com/TsengYuen/archive/2011/12/30/..
阅读全文
摘要:转自:http://www.cocoachina.com/bbs/read.php?tid-73476.html
阅读全文
摘要:There is a much easier way to declare a global variable. Declare it like an ordinary C-style global, outside of any @interface...@end block in some .H file:Code: extern BOOL amIaVirgin;Then define it in some .M file, but outside of any @implementation... @end block:Code: BOOL amIaVirgin;Then it is..
阅读全文
摘要:今天在看书上的一段代码时,发现NSString实例化时,有时用的是initWithFormat方法,有时用的是stringWithFormat,到底应该如何选择呢?区别:1、initWithFormat是实例方法只能通过 NSString* str = [[NSString alloc] initWithFormat:@"%@",@"Hello World"] 调用,但是必须手动release来释放内存资源2、stringWithFormat是类方法可以直接用 NSString* str = [NSString stringWithFormat:@&qu
阅读全文
摘要:今天在园子里看到了一篇牛文“Objective-C 2.0 with Cocoa Foundation--- 5,Class类型,选择器Selector以及函数指针 ”,讲得十分精彩,忍不住把它的代码加上注释整理于此,以便日后查看。个人体会:obj-C中的“Class类型变量”比c#中的Object基类还要灵活,可以用它生成任何类型的实例(但是它又不是NSObject)。而选择器SEL与函数指针IMP,如果非要跟c#扯上关系的话,这二个结合起来,就点类似c#中的反射+委托,可以根据一个方法名称字符串,直接调用方法。"牛"的基类 Cattle.h#import <Fou
阅读全文
摘要:非正式协议在obj-c中的关键字虽然也是interface,但是这个跟c#中的接口(interface)并不完全相同。回忆一下前面学过的内容,我们定义一个类Sample时,总是会先生成一个Sample.h,代码如下:#import <Foundation/Foundation.h>@interface Sample : NSObject {}-(void) HelloWorld;@end它表明Sample类中,约定了"应该"有一个名为HelloWorld的方法(注:我这里说的是应该,而不是必须),它只是一种君子协定。如果我们在Sample.m中,并不遵守这个约定
阅读全文