object-c
xiaoshang
这个作者很懒,什么都没留下…
展开
-
IOS学习笔记38--@class #import辨析 #include
解析: 很多刚开始学习iOS开发的同学可能在看别人的代码的时候会发现有部分#import操作写在 .m 文件中,而 .h 文件仅仅使用@class进行声明,不禁纳闷起来,为什么不直接把#import放到h文件中呢? 这是因为 .h 文件在修改后,所有 #import 该 .h 文件的所有文件必须重 新Build,因此,如果把 #import 写在 .h 文转载 2013-11-26 18:15:15 · 613 阅读 · 0 评论 -
ViewController的生命周期分析和使用
iOS的SDK中提供很多原生ViewController,大大提高了我们的开发效率,下面是我的一些经验。一、结构按结构可以对iOS的所有ViewController分成两类:1、主要用于展示内容的ViewController,这种ViewController主要用于为用户展示内容,并与用户交互,如UITableViewController,UIViewController。转载 2013-08-13 23:11:13 · 582 阅读 · 0 评论 -
利用 Delegate Design Pattern 进行 View Controller 之间的沟通
如果你是 Objective-C / Cocoa Touch 的重度使用者,那么你一定被一个东西困扰过:不同的 View Controller 之间,如果互相进行沟通?举个常见的例子。假设我们手头上有一个 UIViewController 实例,名叫 parentViewController ,在这个 parentViewController 生命周期的某个节点,它需要以 modal vi转载 2013-08-13 23:06:51 · 632 阅读 · 0 评论 -
Delegation in Objective-C
在開發 iOS app 的過程中,Delegation(委任) 幾乎是避不掉的東西,例如在 ViewController 裡處理 UITableView 的時候,大家一定都寫過像這樣的程式碼:self.tableView.delegate = self坊間的書本大多會教要這樣寫,但不一定有說明為什麼要這麼寫。其實 delegation 的概念並不困難,只是要用程式碼來表達的转载 2013-08-11 23:06:01 · 801 阅读 · 0 评论 -
Objective-C——消息、Category和Protocol
面向对象永远是个可以吐槽的话题,从开始提出到推崇备至,到充满质疑,一路走来让人唏嘘不已。面向对象的思想可谓历史悠久,20世纪70年代的Smalltalk可以说是面向对象语言的经典,直到今天我们依然将这门语言视为面向对象语言的基础。面向对象是大部分编程语言的基本特性,像C++、Java、Objective-C这样的静态语言,Ruby、Python这样的动态语言都是面向对象的语言。但是如何编写转载 2013-08-12 09:10:45 · 510 阅读 · 0 评论 -
Xcode下UIImagePickerController本地中文化问题,修改info.plist不起作用
Xcode4下新建的项目 info plist里Localization native development region改了,UIImagePickerController里还是都显示英文,原来xcode3生成的项目拿出来,修改plist就能显示中文,Xcode4下不光需要修改info plist里的Localization native development region为China(图1转载 2013-08-10 22:08:34 · 1034 阅读 · 0 评论 -
UIView的一些基本方法 init、loadView、viewDidLoad、viewDidUnload、dealloc
init方法 在init方法中实例化必要的对象(遵从LazyLoad思想)init方法中初始化ViewController本身 loadView方法 当view需要被展示而它却是nil时,viewController会调用该方法。不要直接调用该方法。如果手工维护views,必须重载重写该方法如果使用IB维护views,必须不转载 2013-08-11 00:08:17 · 602 阅读 · 0 评论 -
关于UILocalNotification一些更深刻的认识
不费话,直接上代码,然后解释[[UIApplication sharedApplication] cancelAllLocalNotifications];Class cls = NSClassFromString(@"UILocalNotification");if (cls != nil) {UILocalNotification *notif = [[cls alloc] i转载 2013-08-22 23:11:34 · 787 阅读 · 0 评论 -
应用程序挂起、复原与终止— IOS开发
一、挂起当有电话进来或者锁屏,这时你的应用程会挂起,在这时,UIApplicationDelegate委托会收到通知,调用 applicationWillResignActive 方法,你可以重写这个方法,做挂起前的工作,比如关闭网络,保存数据。- (void)applicationWillResignActive:(UIApplication*)application{ /*添加转载 2013-08-10 23:41:23 · 678 阅读 · 0 评论 -
IOS之Info.plist文件简介
元信息简介 为了提供更好的用户体验,IOS 和 OS X的每个app或bundle都依赖于特殊的元信息(meta Information). 元信息有多种用途,包括直接向用户展示信息系统内部用来标识你的app或其支持的文档类型系统框架用来辅助app的加载 通过一种特殊的信息属性列表文件,app向系统提供自己的元信息。 属性列表可转载 2013-08-10 22:03:22 · 1001 阅读 · 0 评论 -
UITableView和UITableViewCell的一些简单用法
UITableView和UITableViewCell的一些简单用法环境:Xcode4.2,iOS51、增加section的标题,- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ return @"1";}转载 2013-08-21 23:25:22 · 667 阅读 · 0 评论 -
UINavigationController使用详解
UINavigationController view层级1、navigationItem 我们都知道navigationItem是UIViewController的一个属性,这个属性是为UINavigationController服务的。文档中是这么解释的“The navigation item used to represent the view controller in转载 2013-08-14 12:46:15 · 529 阅读 · 0 评论 -
iPhone程序连接到真机调试(注册了APP ID及购买了IDP开发者授权的前提下)
对于真机调试,首先要在苹果网站上注册APP ID,以及购买iPhone Develop Program(iDP) 开发者授权,99美元。然后要创建证书请求CSR,创建步骤如下:设置OCSP和CRL为关闭。Mac OS 中,打开应用程序,找到 钥匙串访问(Keychain Access)工具打开主菜单 - 证书助理(Certificat转载 2013-08-14 12:48:24 · 680 阅读 · 0 评论 -
触摸,事件,UIGestureRecognizer
1.UIView的触摸控制是在UIView中编程处理,不是在UIViewController中编程处理。2.独占触摸模式。。。3.- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 在UIView中判断触摸的点是否在UIView中起作用。可以实现一些非矩形的触摸事件。转载 2013-10-16 21:37:05 · 826 阅读 · 0 评论 -
代码实现UIPickerView
在视图上添加选取器pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, 320, 216)]; // 指定Delegate pickerView.delegate=self; // 显示选中框 pickerView.showsSelectionIndicator=Y转载 2013-09-13 10:18:11 · 619 阅读 · 0 评论 -
iPhone 图标设置
让你的应用支持新iPad的Retina显示屏一、应用图片标准iOS控件里的图片资源,苹果已经做了相应的升级,我们需要操心的是应用自己的图片资源。就像当初为了支持iPhone 4而制作的@2x高分辨率版本(译者:以下简称高分)图片一样,我们要为iPad应用中的图片制作对应的高分版本。我知道不少开发者很有预见性的早在iOS 5.0 SDK上就完成了这一步升级。可是我还是要强调一点,那就是之前转载 2013-08-16 20:38:28 · 746 阅读 · 0 评论 -
UITableView 基本使用方法总结
1. 首先,Controller需要实现两个 delegate ,分别是 UITableViewDelegate 和 UITableViewDataSource 2.然后 UITableView对象的 delegate要设置为 self。 3. 然后就可以实现这些delegate的一些方法拉。(1)- (NSInteger)number转载 2013-08-16 15:53:55 · 659 阅读 · 0 评论 -
ios NSConditionLock 解释
1. NSConditionLock 相关知识点: 1.1 NSConditionLock 是锁,一旦一个线程获得锁,其他线程一定等待 1.2 [xxxx lock]; 表示 xxx 期待获得锁,如果没有其他线程获得锁(不需要判断内部的condition) 那它能执行此行以下代码,如果已经有其他线程获得锁(可能是条件锁,或者无条件锁),则等待,直至其他线程解锁 1.3 [转载 2013-08-16 14:38:07 · 1612 阅读 · 0 评论 -
Objective-C语法之代码块(block)的使用
代码块本质上是和其他变量类似。不同的是,代码块存储的数据是一个函数体。使用代码块是,你可以像调用其他标准函数一样,传入参数数,并得到返回值。脱字符(^)是块的语法标记。按照我们熟悉的参数语法规约所定义的返回值以及块的主体(也就是可以执行的代码)。下图是如何把块变量赋值给一个变量的语法讲解:按照调用函数的方式调用块对象变量就可以了:int result = myB转载 2013-08-16 14:32:05 · 857 阅读 · 0 评论 -
Iphone的UILabel和UIFieldText
一、UILabel(1)初始化UILabelUILabel *scoreLabel = [ [UILabel alloc ] initWithFrame:CGRectMake((self.bounds.size.width / 2), 0.0, 150.0, 43.0) ]; scoreLabel.textAlignment = UITextAlignmentCenter;转载 2013-08-16 17:00:46 · 670 阅读 · 0 评论 -
ios 数据存储的四种常用方式NSKeyedArchiver/NSUserDefaults/Writ
在iOS中也有几种方式,一般常用的有以下四种形式: 1. NSKeyedArchiver(加密形式)** 2. NSUserDefaults **** 3. Write写入方式 **** 4. SQLite3 **首先介绍第一种保存方式:NSKeyedArchiver//=================NSKeyedArchiver====转载 2013-08-14 14:48:47 · 836 阅读 · 0 评论 -
xcode4.2/4.3 配置svn
1.首先从服务端获得svn地址https://ip地址/svn路径2. 为这个IP设置一个名称,因为xcode只能识别域名不能使用ip作为svn服务器地址。 运行终端 输入 sudo vi /etc/hosts 在显示的表中将ip与域名绑定 如 127.0.0.1 svnserver 最后输入:wq完成编辑如果hosts为只读则采用以下解决方法: a.打开f转载 2013-08-14 12:51:14 · 568 阅读 · 0 评论 -
新视图 pushViewController presentModalViewController 用法
这两个方法都是必须要ViewController, 是建立在UINavigationController之上的。SQLiteViewController *baSQLiteViewController = [[SQLiteViewController alloc] init];UINavigationController *nav = [[UINavigationController a转载 2013-08-14 12:31:13 · 643 阅读 · 0 评论 -
iPhone5和iPhone4的屏幕兼容问题
iPhone5屏幕没有等比例扩大,直接拉长了,以前的应用在iphone5上直接就是上下两条黑,刚做好ipad开发,最近又要做iphone开发,就在做项目之前把屏幕兼容问题解决了一下。大概可以分为三步:1、建立xib视图界面时,把view的size都设为Retain4FullScreen2、把界面分为三个部分,即在superview上添加上中下三个view,顶部和底部的view在不同转载 2013-08-09 15:14:18 · 938 阅读 · 0 评论 -
Applications are expected to have a root view controller at the end of application launch
问题:Applications are expected to have a root view controller at the end of application launch环境:XCode4.2场景:这种问题多发生在XCode4.2 移植低版本项目时出现。原因:在iOS5下,应用加载时,需要一个root view controller,在iOS5以下的版转载 2013-08-09 11:47:23 · 626 阅读 · 0 评论 -
ASIHTTPRequest类库简介和使用说明
方法的详细使用:http://www.dreamingwish.com/dream-category/api-in-chinese/asihttprequest-doc 官方网站: http://allseeing-i.com/ASIHTTPRequest/ 。可以从上面下载到最新源码,以及获取到相关的资料。 项目下载地址:http://github.com/pok转载 2013-08-07 18:54:59 · 552 阅读 · 0 评论 -
Objective-C的属性和成员变量用法及关系浅析
在使用Objective-C语言进行了一段时间的iOS开发之后,发现自己的语言基础相对薄弱,于是开始弥补自己的短处。我发现在用过一种语言之后,再回过头来看它的很多原理会发现有更加深刻的理解。下面就对一直困惑我的属性和成员变量的用法和关系问题进行浅析,由于水平有限可能会有错误,请看过文章的人多多指正。1、属性 关于属性的用法在苹果的官方文档《The Objective-C Pr转载 2013-08-07 18:45:58 · 519 阅读 · 0 评论 -
@class的用法
@class指令的用法看上去有点混乱,下面给出我的一点小见解。@class指令设置了对另一个类的引用。举个例子,在下面的代码中,使用了@class HomeBrewRecipes通知编译器 HomeBrewRecipes 事实上是一个类。所以当编译器的得到第十行后,不需要其他的信息,假定一切都正常,然后继续执行。 12345678910转载 2013-08-07 17:42:05 · 668 阅读 · 0 评论 -
Xcode的控制台调试命令
XCode4.0以后,编译器换成了LLVM 编译器 2.0与以前相比,更加强大:1.LLVM 编译器是下一带开源的编译技术.完全支持C, Objective-C, 和 C++.2.LLVM 速度比 GCC快两倍,建立的程序也会运行的更快. 因为它更好的利用现代的芯片的结构.3.LLVM和Xcode 4完全的整合在一起.包括关键字高亮,代码完整性等全都是由LLVM语法分析器来分析转载 2013-08-06 15:54:51 · 579 阅读 · 0 评论 -
解决EXC_BAD_ACCESS错误的一种方法--NSZombieEnabled
我们做iOS 程序开发时经常用遇到 EXC_BAD_ACCESS 错误导致 Crash,出现这种错误时一般 Xcode 不会给我们太多的信息来定位错误来源,只是在应用 Delegate 上留下像Thread 1: Program received signal:"EXC_BAD_ACCESS",让问题无从找起。比如你对已释放的对象发送消息时就会出现,EXC_BAD_ACCESS,再如rel转载 2013-08-06 15:51:52 · 796 阅读 · 0 评论 -
Objective-C内存管理机制
Objective-C内存管理机制 1.Objective-C中所有对象都在堆区建立,由程序员负责释放对象所占用的内存。内存管理机制由3种:垃圾回收、引用计数、C语言方式。2.垃圾回收是Mac OS10.5提供的新方案,在系统存在一个垃圾收集器。如果发现某个对象没有被任何对象使用,该对象被自动释放。3.C语言方式,原始内存管理方式。用户手动调用malloc、转载 2013-08-06 14:36:41 · 587 阅读 · 0 评论 -
Objective-C 关于空值nil和Nil和NULL和NSNull
1.nil一个null指针,指向一个objective - c的对象表示一个对象为空:NSString* str = nil; ( #define nil ((id)0) )2.Nil一个null指针,指向一个objective - c类对象。表示一个类对象为空:Class class = Nil;3.Null对Objectiv转载 2013-08-06 14:26:47 · 704 阅读 · 0 评论 -
Objective-C继承机制
一、继承1.基本概念一个新类可以从已有的类派生出来,这个过程称为继承,新类称为子类,已有的类称为父类或超类。2.继承的特点:实现代码重用:子类可以重用父类的实例变量和方法。子类可以增加实力变量和方法扩展父类,但不能重载父类的实例变量所有类型都有一个公共基类:NSObject3.NSObject类 允许定义自己的根类,但通常不这转载 2013-08-06 14:17:51 · 575 阅读 · 0 评论 -
Objective-C多态:动态类型识别+动态绑定+动态加载
一、Objective-C多态1.概念:相同接口,不同的实现来自不同类可以定义共享相同名称的方法。动态类型能使程序直到执行时才确定对象所属类型动态类型绑定能使程序直到执行时才确定要对对象调用的实际方法2.Objective-C不同于传统程序设计语言,它可以再运行时加入新的数据类型和新的程序模块:动态类型识别,动态绑定,动态加载3.id类型:通用指针类转载 2013-08-06 14:08:15 · 757 阅读 · 0 评论 -
Objective-C语法之异常处理
Objective-C的异常比较像Java的异常处理,也有@finally的处理,不管异常是否捕获都都要执行。异常处理捕获的语法: @try { } @catch (NSException *exception) { } @finally { }@catch{} 块 对异常的捕获应该先细后粗转载 2013-08-06 09:39:56 · 602 阅读 · 0 评论 -
IOS开发学习笔记(1)-----UILabel 详解
UILabel 属性及应用最近在学习ios开发,觉得有必要做个备忘,以下内容是我找个api注释的,希望对大家有点帮助,我自己也做个备忘//创建uilabelUILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(20, 40, 280, 80)];//设置背景色label1.backgroundColor = [U转载 2013-08-19 17:20:12 · 631 阅读 · 0 评论 -
目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结
做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便。在Objective-C语言中 词典对象就是做这个事情的,不过在同一个词典对象中可以保存多个不同类型的数据,不像Java与C 只能保存声明的相同类型的数据,它的关键字为NSDictionary与NSMutableDictionary。阅转载 2013-08-19 22:44:14 · 619 阅读 · 0 评论 -
Xcode4.2下iPhone多视图开发(自已创建MainWindow.xib和不用MainWindow.xib两种实现)
使用Xcode4以前的版本进行iPhone开发,新建Window-based Application类型的工程时,都会自动生成MainWindow.xib,并且都至少包含一个UIApplicationDelegate和一个UIWindow对象。但是Xcode4以后,新建工程时,工程template这一块有很大改动,没有Window-based Application这一项了,但是有个Emp转载 2013-08-09 11:46:16 · 647 阅读 · 0 评论 -
xcode 4.2 自己添加 MainWindow.xib
xcode 4.2 不再支持 Window-Based Application 的解决办法: 1.创建空项目 Empty Application。(在Xcode4.2下创建的这个空项目不再有MainWindow.xib文件了。) 2.Ctrl+N,创建User Interface下面的Window(选择“iOS->User Interface->Window),命名成Mai转载 2013-08-08 16:24:11 · 585 阅读 · 0 评论 -
UItableViewCell的复用机制,原理解答
今天在看iphone开发秘籍的时候,遇到这个问题,就仔细的深入了一下,通过测试,获取了一些自认为还不错的结论,希望对大家在cell复用方面遇到的一些问题会有所帮助。本篇文章只讲原理,对于如果对cell做界面,不深入讲述。鉴于我的表达能力有限,可能会有我自己清楚,但是却说不清楚的地方,如有问题,留言给我。UITableView在界面的编程用的甚多,iphone开发也三月有转载 2013-08-20 23:04:03 · 621 阅读 · 0 评论