
iOS-基础与语法
frankwun
这个作者很懒,什么都没留下…
展开
-
XCode 修改SVN地址方法
1. 打开终端$cd 你的项目所在目录/#查看一下,当前的svn地址$svn info ./$svn cleanup$svn sw --relocate oldsvn地址 newsvn地址 ./#这里需要输入本机密码#这里需要输入svn用户名和密码2. 打开xcode 进入Repositories转载 2012-04-23 15:37:33 · 1350 阅读 · 0 评论 -
对象的比较 - hash和isEqual
对象的比较hash和isEqual:方法虽然不是严格的内省方法,但是可以发挥类似的作用,是进行对象的识别和比较时不可或缺的运行时工具。它们并不向运行环境查询对象信息,而是依赖于具体类的比较逻辑。hash和isEqual:方法都在NSObject协议中声明,且彼此关系紧密。实现hash方法必须返回一个整型数,作为哈希表结构中的表地址。两个对象相等(isEqual:方法的判断结果)意味转载 2013-02-16 14:10:01 · 550 阅读 · 0 评论 -
從iPhone App啟動App Store
出自:http://developer.apple.com/iphone/library/qa/qa2008/qa1629.htmlTechnical Q&A QA1629Launching the App Store from an iPhone applicationQ: How do I launch the App Store from my iPhone applicat转载 2013-02-21 17:27:02 · 215 阅读 · 0 评论 -
利用dispatch_once创建单例
无论是爱还是恨,你都需要单例。实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication.什么是单例呢?Wikipedia是如此定义的:在软件工程中,单例是一种用于实现单例的数学概念,即将类的实例化限制成仅一个对象的设计模式。或者我的理解是:单例是一种类,该类只能实例化一个对象。 尽管这是单例的实际定义,转载 2013-02-26 10:57:52 · 180 阅读 · 0 评论 -
IOS开发之——objectForKey与valueForKey在NSDictionary中的差异
从 NSDictionary 取值的时候有两个方法,objectForKey: 和 valueForKey:,这两个方法具体有什么不同呢?先从 NSDictionary 文档中来看这两个方法的定义:objectForKey: returns the value associated with aKey, or nil if no value is associated with a转载 2013-03-11 09:34:01 · 385 阅读 · 0 评论 -
Objective-C 键/值编码
第十六章:键/值编码键/值编码(KVC)是Cocoa提供的一种间接更改对象状态的方式,实现方式是使用字符串描述要更改的对象状态部分16.1 入门项目16.2 KVC简介键/值编码的基本调用包括:-valueForKey:和-setValue:forKey:以字符串形式向对象发送消息,字符串即属性名valueForKey:的查找顺序:先查-转载 2013-03-11 09:38:22 · 396 阅读 · 0 评论 -
如何使用dispatch_once优化代码性能
有些变量只需要初始化一次(如从文件中读取配置参数,读取设备型号等等),可以使用dispatch_once来进行读取优化,保证只调用API一次,以后就只要直接访问变量即可范例如下:static BOOL isTestMode;+ (BOOL)isTestMode{ static dispatch_once_t onceToken; dispatch_o转载 2013-02-26 12:34:35 · 250 阅读 · 0 评论 -
oc(objective-c)新特性,ios开发 xcode4.4 ios6
2007年的时候,Objective-C在TIOBE编程语言排名里还排在可怜的第45位,而随着移动互联网的迅速发展和iPhone,iPad等iOS设备的广阔市场前景,Objective-C也迅速崛起,走进了开发者的视野。在最近的TIOBE排名中,Objective-C达到了惊人的第4名,可以说已经成为当今世界上一门非常重要的编程语言。而Objective-C现在主要是由Apple在负责维护转载 2013-02-28 10:44:53 · 664 阅读 · 0 评论 -
objective-c 中随机数的用法
1)、arc4random() 比较精确不需要生成随即种子 使用方法 : 通过arc4random() 获取0到x-1之间的整数的代码如下: int value = arc4random() % x; 获取1到x之间的整数的代码如下:转载 2013-04-07 10:09:41 · 238 阅读 · 0 评论 -
iOS 的框架
本附录介绍iOS系统包含的框架,它们为编写iOS平台的软件提供必要的接口。下面的表格尽可能地列出框架中的类、方法、函数、类型以及常量使用的关键前缀,请避免在您的符号名称中使用这些前缀。设备中的框架表B-1描述iOS设备提供的框架,它们位于/Platforms/iPhoneOS.platform/Developer/SDKs//System/Library/Framewo转载 2013-03-26 10:46:30 · 974 阅读 · 0 评论 -
ios的四个核心部分
ios的四个核心部分1.Cocoa TouchCocoa Touch层的关键技术。(1)多任务 iOS SDK 4.0以及以后的SDK构建的程序(且运行在iOS 4.0和以后版本的设备上),用户按下Home按钮的时候程序不会结束;它们会挪到后台运行。UIKit帮助实现的多任务支持,让程序可以平滑切换到后台,或者切换回来。为了节省电力转载 2013-03-26 10:42:25 · 433 阅读 · 0 评论 -
iOS 检测有没有安装其它应用
在iOS中,应用A如果想打开应用B,需要在B工程的info.plist文件中添加URL types字段下面的URL identifier 和 URL Schemes 字段;比如URL identifier 设置为:com.adsage ; URL Schemes 设置为:myapp;那么在工程A中可以通过:转载 2013-05-20 10:43:34 · 1387 阅读 · 0 评论 -
iOS App 自定义 URL Scheme 设计
在 iOS 里,程序之间都是相互隔离,目前并没有一个有效的方式来做程序间通信,幸好 iOS 程序可以很方便的注册自己的 URL Scheme,这样就可以通过打开特定 URL 的方式来传递参数给另外一个程序。例如在 iPad 上浏览网页,并且 iPad 已经安装了 淘宝 HD,那么就打开下面这个链接就会在淘宝 HD 中查看这个商品的详细信息,也可以方便的使用淘宝 HD 进行购买、收藏等操作。转载 2013-07-05 11:04:15 · 383 阅读 · 0 评论 -
错误信息 NSError
一、获取系统的错误信息比如移动文件时,获取文件操作错误:NSError *e = nil;[[NSFileManager defaultManager] moveItemAtPath:sourcePath toPath:targetPath error:&e];if (e) { NSLog(@"move failed:%@", [e localizedDescription]);转载 2013-07-05 11:09:03 · 598 阅读 · 0 评论 -
在objc项目中使用常量的最佳实践
之前,在在objc项目中使用常量中,使用c的预处理#define来设置常量。比如,可以做个头文件,然后在需要的类文件中import,使用常量。但这不是最佳实践。这样做可能是最好的方式,首先在比如叫Constants.h的头文件中:#importextern NSString * const kInitURL;@interface Constants : NSOb转载 2013-07-05 11:20:34 · 337 阅读 · 0 评论 -
NSClassFromString returns nil的问题
在一次开发中,突然遇到这种情况:Class aclass = NSClassFromString("ClassName");aClass返回为空,真是百思不得其解。ClassName是存在的啊。后来在网上搜了下,发现如果要从静态库中实例化一个Class,需要在bulid settings中的Other Linker Flags中添加“-ObjC"标识。转载 2013-10-28 14:09:47 · 362 阅读 · 0 评论 -
iOS将大文件映射到内存
在《中国区GPS偏移纠正(适用于Google地图)》一文中曾读取一个78M的大数据文件,一开始采用了NSData的dataWithContentsOfFile:方法。不少人反馈说如果直接使用,将会耗尽iOS的内存。其实这个是可以改善的。 NSData还有一个API:+ (id)dataWithContentsOfFile:(NSString *)path options:(NSDataRead转载 2014-09-11 16:47:25 · 356 阅读 · 0 评论 -
深入理解Objective-C中字符串常量
在Objective-C中我们常常会用到常量字符串,常量字符串和一般的字符串还是有一定区别,本文将介绍一些常量字符串的特性,加强你的常量字符串的认识。请看下面一段代码。NSString *string1 = @"Hello";NSString *string2 = @"Hello";if (string1==string2) { NSLog(@"They are same addr转载 2014-09-11 16:32:47 · 330 阅读 · 0 评论 -
如何在iPhone应用中避免内存泄露
本篇文章将介绍几个在iPhone APP中避免内存泄露的小技巧关于所有权所有权是iPhone内存管理的核心思想,对象的所有者负责在使用完对象后进行释放。一个对象可以有多个所有者,当它没有所有者时将被设置为取消分配(deallocation)。创建对象时,所有权通过alloc、new、或者copy的方式建立,之后通过调用retain或者通过Cocoa函数来分配和复制对象的所有转载 2013-02-16 14:01:50 · 256 阅读 · 0 评论 -
IOS中NSUserDefaults的用法(轻量级本地数据存储)
NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名、密码之类的,个人觉得使用NSUserDefaults是首选。下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯。因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接转载 2012-12-07 16:46:49 · 381 阅读 · 0 评论 -
关于出现僵尸信号SIGBAT或者EXC_BAD_ACCESS的解决方案
随着用xcode开发的深入,相信很多同学都对出现SIGBAT或者EXC_BAD_ACCESS的问题,编译是对的,运行时做了某些操作,就跳到main函数里面了, 然后出现SIGBAT或者EXC_BAD_ACCESS的提示, 提示的信息无法正确判断出错原因。下面给大家提供一个方法,会在控制台中输出出现SIGBAT或者EXC_BAD_ACCESS的原因, 基本90%能解决你的问题。转载 2012-11-29 13:22:39 · 264 阅读 · 0 评论 -
iphone 如果获取对象所属的类名
例如我们已知事例对象A *a; [NSString stringWithUTF8String:object_getClassName(a)];转载 2012-04-24 11:13:57 · 1012 阅读 · 0 评论 -
代替NSLog,去掉多余的信息
#include stdarg.h> void LogIt (NSString *format, ...) { va_list args; va_start (args, format); NSString *string; string = [[NSString alloc] initWithFormat: format arg转载 2012-05-09 16:16:26 · 296 阅读 · 0 评论 -
object-c 的reflection使用方法
// Without reflection Foo *foo = [[Foo alloc] init]; [foo hello]; // With reflection Class cls = NSClassFromString(@"Foo"); id foo = [[cls alloc] init]; SEL selecto转载 2012-05-09 16:20:58 · 313 阅读 · 0 评论 -
iphone 开源框架
扫描wifi信息:http://code.google.com/p/uwecaugmentedrealityproject/http://code.google.com/p/iphone-wireless/条形码扫描:http://zbar.sourceforge.net/iphone/sdkdoc/install.htmltcp/ip的通讯协议:h转载 2012-05-11 08:55:58 · 226 阅读 · 0 评论 -
UIApplication深入研究摘录
1.设置icon上的数字图标 //设置主界面icon上的数字图标,在2.0中引进, 缺省为0 [UIApplicationsharedApplication].applicationIconBadgeNumber = 4;2.设置摇动手势的时候,是否支持redo,undo操作 //摇动手势,是否支持redo undo操作。 //3.0以转载 2012-05-11 10:42:48 · 436 阅读 · 0 评论 -
iOS屏幕旋转
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { //屏幕将要转到时执行 if (self.interfaceOrientation == UIInterfaceOrientationLa转载 2012-05-22 15:33:49 · 3991 阅读 · 0 评论 -
object c中能使用正则表达式吗?
可以用RegexKitLite。http://regexkit.sourceforge.net/RegexKitLite/index.html是调用ICU的,因此不用引入框架就可以直接在iPhone上运行,其实就是两个文件,是对NSString和NSMutableString做的Category,直接可以这样用:[string isMatchRegex:@"xxxx"]转载 2012-06-12 10:28:02 · 573 阅读 · 0 评论 -
IOS添加自定义字体
IOS添加自定义字体准备:字体文件(.ttf,.odf)方法1: 添加对应的字体(.ttf或.odf)到工程的resurce,使用cocos2d中的FontLabel库,FontLabel继承于UILabel,象UILabel一样使用就好了 fontName直接使用添加的资源名字即可方法2: 1.添加对应的字体(.ttf或.odf)到工转载 2012-06-25 10:25:20 · 5396 阅读 · 0 评论 -
iOS中的MVC
相信说起MVC(Model-View-Controller)大家都很熟悉。在iOS开发中MVC的机制被使用的淋漓尽致,并且我觉得在iOS上写程序,充分理解iOS的MVC模式,有助于我们程序的组织合理性,相反,我们不遵守MVC的一些约定,程序是可以写的,但就等着受苦了。下面我只对一些约定列一个表,并且说一下iOS的支持机制啊,算分享给大家:1、Model不允许和Control转载 2012-06-28 10:09:16 · 392 阅读 · 0 评论 -
iOS怎样实现邮件分享和短信分享,并且显示为中文?
1. 下载官方示例:MessageComposer(在xcode帮助中搜“MessageComposer”)2. 此时发现邮件发送界面都是英文,怎么转换成中文呢?1)在Project Navigator中点击工程名,选择PRJECT-工程名,选择Info标签,在Localizations中添加Chinese(zh-hans)。2)在info.plist文件中,设置L原创 2012-08-04 10:38:13 · 2496 阅读 · 1 评论 -
iOS SEL类型
Objective-C在编译的时候,会根据方法的名字(包括参数序列),生成一个用 来区分这个方法的唯一的一个ID,这个ID就是SEL类型的。我们需要注意的是,只要方法的名字(包括参数序列)相同,那么它们的ID都是相同的。就是 说,不管是超类还是子类,不管是有没有超类和子类的关系,只要名字相同那么ID就是一样的。我们可以方便的通过方法的名字,获取到方法的ID也就是我们所说的SEL,反转载 2012-08-01 13:24:32 · 842 阅读 · 0 评论 -
iPhone开发关于UDID和UUID的一些理解
一.UDID(Unique Device Identifier) UDID是Unique Device Identifier的缩写,中文意思是设备唯一标识. 在很多需要限制一台设备一个账号的应用中经常会用到,在Symbian时代,我们是使用IMEI作为设备的唯一标识的,可惜的是Apple官方不允许开发者获得设备的IMEI. ios5 sdk中的获取方法: [UIDevi转载 2012-09-27 09:04:52 · 1783 阅读 · 0 评论 -
在Cocoa里使用UUID
英语原文 http://dbachrach.com/blog/2009/03/making-uuids-in-cocoa/UUID全称 Universally Unique Identifiers ,它能让你在不同地点,不借助中央服务器的情况下为任何项目创建唯一的标识符。举个例子,如果你要在Cocoa App里加入一个永不会和其它ID冲突的用户ID,你可以自己建一个服务器,并用脚本为转载 2012-09-27 09:06:49 · 478 阅读 · 0 评论 -
UUID和GUID
1. UUID: (Universally Unique Identifier) 通用唯一标识符,是一个标识符标准用于软件架构,由开放软件基金会(OSF)作为分布式计算环境(DCE)的一部分而制作的标准。 UUID的目的是让分布式系统中的所有元素都能有唯一的辨识资讯,不需要透过中央控制端来做辨认资讯的制定。如此一来每个人都建立一个与其他人不同的标转载 2012-09-27 15:28:58 · 1015 阅读 · 0 评论 -
object-c开发中混合使用或不使用ARC
xcode不断进步,在xcode4中引入了ARC的概念。您用或者不用它就在那里,于是有了本文:如何在未使用arc的工程中引入一个使用了arc特性的文件,如何在arc工程中引用未使用arc的文件。其实说白了也很简单就是在”Compile Sources”中对相应的文件加入使用或者不使用arc的flagok,首选“Compile Sources”的位置:选中工程->TARGETS->相应的targ转载 2012-10-08 21:51:06 · 495 阅读 · 0 评论 -
UIViewController 没有跟着UIWindow一起旋转的原因分析
对于iPhone app,UIViewController类提供了基本的视图管理模式。当设备改变方向的时候view controller的视图会自动随之旋转的。如果视图和子视图的autoresizing属性设置是对的,这时候视图又没有随着设备一起旋转,可能是以下的原因:1.view controller没有完成代理方法- (BOOL)shouldAutorotateToInterf转载 2012-10-24 13:49:23 · 1087 阅读 · 0 评论 -
iOS strong 和weak的形象理解
转:http://stackoverflow.com/questions/9262535/explanation-of-strong-and-weak-storage-in-ios5 觉得讲的很容易理解 The difference is that an object will be deallocated as soon as there are no strong point转载 2012-11-28 09:04:55 · 231 阅读 · 0 评论 -
iOS中日志打印Q&A
Q:如何打印当前的函数和行号?A:我们可以在打印时使用一些预编译宏作为打印参数,来打印当前的函数和行号。如:NSLog(@"%s:%d obj=%@", __func__, __LINE__, obj);其中func和LINE都是预编译的宏,编译时会分别替换为当前函数和当前行号。 下面是一些常用于打印日志的宏。宏说明__转载 2014-09-11 16:34:31 · 280 阅读 · 0 评论