objective-c
文章平均质量分 88
maomaoyu3211
这个作者很懒,什么都没留下…
展开
-
枚举类型 enum,NS_ENUM,NS_OPTIONS
一般情况下,我们采用C风格的enum关键字可以定义枚举类型。 [cpp] view plaincopy enum{ UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIViewAnimationTransitionFlipFr...原创 2014-12-07 23:07:22 · 71 阅读 · 0 评论 -
浅析Objective-C 深浅拷贝
先了解下概念:浅 复 制:在复制操作时,对于被复制的对象的每一层复制都是指针复制。深 复 制:在复制操作时,对于被复制的对象至少有一层复制是对象复制。完全复制:在复制操作时,对于被复制的对象的每一层复制都是对象复制。注:1、在复制操作时,对于对象有n层是对象复制,我们可称作n级深复制,此处n应大于等于1。2、对于完全复制如何实现(目前通用的办法是:迭代法和归档),这里后...原创 2013-09-24 00:51:45 · 96 阅读 · 0 评论 -
ios gcd
from:http://www.dreamingwish.com/dream-category/toturial/gcd-guideGCD介绍(一): 基本概念和Dispatch Queue什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都...原创 2013-09-24 00:51:36 · 328 阅读 · 0 评论 -
Method Swizzling
Thx: http://esoftmobile.com/2014/02/19/method-swizzling/Method swizzling指的是改变一个已存在的选择器对应的实现的过程,它依赖于Objectvie-C中方法的调用能够在运行时进改变——通过改变类的调度表(dispatch table)中选择器到最终函数间的映射关系。举个例子,假设我们想跟踪在一个iOS应用中每个视图控...原创 2014-02-20 10:11:29 · 106 阅读 · 0 评论 -
Associated Objects
本文翻译自NSHipster的文章Associated Objects。#import <objc/runtime.h>Objective-C开发者在遇到上面这条“咒语”相关的一些东西时,会不自觉的变的非常谨慎。一个主要原因是:弄乱Objective-C运行时可能会改变整个实现结构,因为所有的代码都是运行在它之上的。一方面:<objc/runtime.h&...原创 2014-02-20 10:09:56 · 100 阅读 · 0 评论 -
Objective C运行时(runtime)技术的几个要点总结
from:http://www.cnblogs.com/gugupluto/p/3159733.html#aaaaaaaaaaaaaaaaaaa 前言: Objective C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表、属性列表、变量列表,修改方法、属性,增加方法,属性等等,本文对相关的几个要点做了一个小结。目录:...原创 2014-02-20 10:09:50 · 95 阅读 · 0 评论 -
(译)Objective-C的动态特性
过去的几年中涌现了大量的Objective-C开发者。有些是从动态语言转过来的,比如Ruby或Python,有些是从强类型语言转过来的,如Java或C#,当然也有直接以Objective-C作为入门语言的。也就是说有很大一部分开发者都没有使用Objective-C太长时间。当你接触一门新语言时,更多地会关注基础知识,如语法和特性等。但通常有一些更高级的,更鲜为人知又有强大功能的特性等待你去开拓...原创 2014-02-20 10:09:29 · 105 阅读 · 0 评论 -
NSObject中methodSignatureForSelector、forwardInvocation两个消息方法
在obj-c中我们可以向一个实例发送消息,相当于c/c++ java中的方法调用,只不过在这儿是说发送消息,实例收到消息后会进行一些处理。比如我们想调用一个方法,便向这个实例发送一个消息,实例收到消息后,如果能respondsToSelector,那么就会调用相应的方法。如果不能respond一般情况下会crash。今天要的,就是不让它crash。 首先说一下向一个实例发送一个消...原创 2013-08-28 23:02:01 · 244 阅读 · 0 评论 -
项目后对objective-c 单例理解
在做zon项目中,单例都是: @implementation AppShareDataManagerstatic AppShareDataManager * shareDataManager = nil;@synthesize theCurrentLanguage;@synthesize presentModalFlag;..........+(AppS...原创 2013-03-01 00:06:38 · 164 阅读 · 0 评论 -
Objective-C NSPredicate
NSPredicateCocoa提供了一个NSPredicate类,它用来指定过滤器的条件原理类似于数据库查询17.1 创建谓词predicateWithFormat:NSPredicate *predicate;predicate = [NSPredicate predicateWithFormat:@"name == 'Herbie'"];注意:如果...原创 2013-02-28 00:25:38 · 116 阅读 · 0 评论 -
iOS扩展机制 - associative
category与associative作为objective-c的扩展机制的两个特性,category即类型,可以通过它来扩展方法;associative,可以通过它来扩展属性;在iOS开发中,可能category比较常见,相对的associative,就用的比较少,要用它必须使用<objc/runtime.h>的头文件,然后就可以自由使用objc_getAssociate...原创 2013-01-25 00:48:19 · 66 阅读 · 0 评论 -
ios7 JavaScriptCore.framework
以前想要oc调用js代码一般是通过uiwebview的stringByEvaluatingJavaScriptFromString方法,或是直接使用JavaScriptCore引擎,例如https://github.com/jfahrenkrug/AddressBookSpy。 但是,Apple正式发布了新的iOS 7系统,引入了JavaScriptCore.framework...原创 2014-03-26 01:19:29 · 121 阅读 · 0 评论 -
Objective-C 的“多继承”
当单继承不够用,很难为问题域建模时,我们通常都会直接想到多继承。多继承是从多余一个直接基类派生类的能力,可以更加直接地为应用程序建模。但是Objective-C不支持多继承,由于消息机制名字查找发生在运行时而非编译时,很难解决多个基类可能导致的二义性问题。不过其实 Objective-C 也无需支持多继承,我们可以找到如下几种间接实现多继承目的的方法: 消息转发 delegate...原创 2014-03-28 23:18:47 · 88 阅读 · 0 评论 -
Nullability and Objective-C
https://developer.apple.com/swift/blog/?id=25 http://www.cocoachina.com/ios/20150601/11989.html http://blog.csdn.net/zhangao0086/article/details/44409913 http://blog.sunnyxx.com/tags/iOS...原创 2015-06-18 15:59:45 · 201 阅读 · 0 评论 -
类生成字典
-(NSDictionary *)toDictionary{ @try { NSDictionary *dic = nil; unsigned int outCount, i; Class class = [self class]; NSMutableArray *tmpKeys = [[...原创 2014-12-07 01:18:46 · 114 阅读 · 0 评论 -
Objective-C Runtime 成员变量与属性
习题内容下面代码会? Compile Error / Runtime Crash / NSLog…?@interface Sark : NSObject@property (nonatomic, copy) NSString *name;@end@implementation Sark- (void)speak{ NSLog(@"my name i...原创 2014-12-06 23:49:27 · 73 阅读 · 0 评论 -
消息 和 Category
习题内容下面的代码会?Compile Error / Runtime Crash / NSLog…?@interface NSObject (Sark)+ (void)foo;@end@implementation NSObject (Sark)- (void)foo{ NSLog(@"IMP: -[NSObject(Sark) foo]");...原创 2014-12-06 23:37:00 · 89 阅读 · 0 评论 -
对象&类&元类(Object & Class & Meta Class)
作为C语言的超集,面向对象成为Objective-C与C语言的最大区别,因此,对象是Objective-C中最重要的部分之一。目前面向对象的语言有很多,Objective-C中的对象又和其他语言中的对象有什么区别呢?下面来简单介绍Objective-C中对象的实现。1、Objective-C中的类谁都知道,所有的对象都是由其对应的类实例化而来,殊不知类本身也是一种对象,先不要对这句话感到惊...原创 2014-12-06 22:34:15 · 542 阅读 · 0 评论 -
Self & Super
在 Objective-C 中的类实现中经常看到这两个关键字 ”self” 和 ”super”,以以前 oop 语言的经验,拿 c++ 为例,self 相当于 this,super 相当于调用父类的方法,这么看起来是很容易理解的。以下面的代码为例:@interface Person:NSObject { NSString* name;}- (void) setName:(NS...原创 2014-12-06 21:59:37 · 98 阅读 · 0 评论 -
Objective-C Runtime
Objective-C Runtime本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机。主要内容如下:引言简介与Runtime交互Runtime术语消息动态方法解析消息转发健壮的实例变量(Non Fragile ivars)Objective-C A...原创 2014-12-06 18:31:22 · 314 阅读 · 0 评论 -
Objective C 中的nil,Nil,NULL和NSNull理解
ObjC 里面的几个空值符号经常会差点把我搞死,这些基础的东西一点要弄清楚才行,以提高码农的基本素质。nilnil 是 ObjC 对象的字面空值,对应 id 类型的对象,或者使用 @interface 声明的 ObjC 对象。例如:?NSString *someString = nil;NSURL *someURL = nil;i...原创 2014-11-26 14:26:24 · 118 阅读 · 0 评论 -
《Effective Objective C 2.0》笔记
第1章 熟悉objective-c 1第1条:了解objective-c语言的起源 1EZ_1:Objective-C的动态特性Objective-C具有相当多的动态特性,基本的,也是经常被提到和用到的有动态类型(Dynamic typing),动态绑定(Dynamic binding)和动态加载(Dynamic loading)。1、动态类型即运行时再决定对象的类型。这类动态特性在日常应用中...原创 2014-10-21 13:36:28 · 113 阅读 · 0 评论 -
NSValue对任何结构体,基本类型,指针的封装
任何结构体:一个NSValue对象是用来存储一个C或者Objective-C数据的简单容器。它可以保存任意类型的数据,比如int,float,char,当然也可以是指pointers, structures, and object ids。NSValue类的目标就是允许以上数据类型的数据结构能够被添加到集合里,例如那些需要其元素是对象的数据结构,如NSArray或者NSSet的...2015-08-28 09:56:26 · 353 阅读 · 0 评论 -
IBInspectable / IBDesignable
感谢:http://nshipster.cn/ibinspectable-ibdesignable/ 无论陈词滥调多少次,比起一个需要我们记住并且输入什么的界面来说,如果替换成我们能够看见并可控制的界面的话将会是巨大的进步。 Xcode 6 提供了这样一个替代,在旧技术上建立新的互动。在设计项目的时候建立一个自定义的界面使你可以配置自定义控制并将它们实时显示出来,用 IBInspect...原创 2015-08-20 21:21:17 · 85 阅读 · 0 评论 -
Block实例------用Block代替delegate来传递值
如果两个试图只是简单的1对1传值的话可以用Block代替delegate,使用简单。在@implementation NSObject(ZXObject)中 const char ZXObjectSingleObjectEvent; -(void)receiveObject:(void(^)(id object))sendObject { objc_...原创 2013-01-24 17:57:33 · 182 阅读 · 0 评论 -
IOS中的block和retain cycle
retain cycle 的产生 说到retain cycle,首先要提一下Objective-C的内存管理机制。作为C语言的超集,Objective-C延续了C语言中手动管理内存的方式,但是区别于C++的极其非人道的内存管理,Objective-C提出了一些机制来减少内存管理的难度。 比如:内存计数。在Objective-C中,凡是继承自NSObject的类都提供了两种方法,...原创 2013-01-24 17:29:36 · 55 阅读 · 0 评论 -
ios5中UIViewController addChildViewController等新方法
ios4还是3,以前基于在vviewcontroller上的切换,基本上就2中方式,导航控制器上的push,或者普通控制器上modal,现在终于多了一个这种玩意儿了。在ios5中,ViewController中新添加了下面几个方法:addChildViewController: removeFromParentViewController transitionFromViewContr...原创 2013-03-18 22:21:58 · 98 阅读 · 0 评论 -
arc方法中局部变量viewcontroller无法获得相应回调事件( exc_bad_access)
- (IBAction)baseTap:(id)sender { NLMailComposerViewController *mail = [[NLMailComposerViewController alloc] init]; mail.delegate = self; [self.view addSubview: mail.view]; NSArra...原创 2013-03-18 22:21:21 · 160 阅读 · 0 评论 -
objective-c 中随机数的用法 (3种:arc4random() 、random()、CCRANDOM_0_1() )
from:http://www.cnblogs.com/xuling/archive/2012/02/28/2370692.html 1)、arc4random() 比较精确不需要生成随即种子 使用方法 : 通过arc4random() 获取0到x-1之间的整数的代码如下: int value ...原创 2013-03-18 22:20:36 · 80 阅读 · 0 评论 -
Difference Between objectForKey and valueForKey in NSDictionary
从 NSDictionary 取值的时候有两个方法,objectForKey: 和 valueForKey:,这两个方法具体有什么不同呢?先从 NSDictionary 文档中来看这两个方法的定义:objectForKey: returns the value associated with aKey, or nil if no value is associated wit...原创 2012-07-20 17:27:46 · 78 阅读 · 0 评论 -
Objective-C - 异常处理(NSException)
苹果关于异常的详细文档:http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Exceptions/Exceptions.html#//apple_ref/doc/uid/10000012i 关于自定义异常或者扩展:Objective-C中处理异常是依赖于NSException实现的...原创 2012-07-17 00:41:19 · 247 阅读 · 0 评论 -
objective-c跬步
内存管理规则。http://www.apple.com.cn/developer/iphone/library/documentation/UserExperience/Conceptual/MemoryMgmt/MemoryMgmt.html 让程序在运行过程中不锁屏[UIApplication sharedApplication].idleTimerDisabled=Y...原创 2012-07-16 22:54:06 · 71 阅读 · 0 评论 -
Cocoa多线程编程之 block 与 dispatch quene
block 是 Apple 在 GCC 4.2 中扩充的新语法特性,其目的是支持多核并行编程。我们可以将 dispatch_queue 与 block 结合起来使用,方便进行多线程编程。 1,实验工程准备在 XCode 4.0 中,我们建立一个 Mac OS X Application 类型的 Command Line Tool,在 Type 里面我们选择 Foundatio...原创 2013-03-05 19:57:23 · 81 阅读 · 0 评论 -
iphone 线程 NSCondition NSThread
多线程在各种编程语言中都是难点,很多语言中实现起来很麻烦,objective-c虽然源于c,但其多线程编程却相当简单,可以与java相媲美。这篇文章主要从线程创建与启动、线程的同步与锁、线程的交互、线程池等等四个方面简单的讲解一下iphone中的多线程编程。一、线程创建与启动线程创建主要有二种方式:- (id)init; // designated initializer- (...原创 2013-03-05 19:57:12 · 87 阅读 · 0 评论 -
10个迷惑新手的Cocoa&Objective-c开发问题
from :http://lianxu.me/blog/2011/11/14/10-cocoa-objc-newbie-problems/#3 以前的确迷惑过language backgroundruntimethreadrunloopdelegate, protocolevent respondermemory managementclass...原创 2013-03-05 19:57:07 · 138 阅读 · 0 评论 -
UIControl 控件简介
UIKit提供了一组控件:UISwitch开关、UIButton按钮、UISegmentedControl分段控件、UISlider滑块、UITextField文本字段控件、UIPageControl分页控件。 控件是对UIView派生类的实用增强及补充,并可以直接附着于导航栏、表格单元,甚至更大的对象。这些控件的基类均是UIControl,而UIControl派生自UIView类...原创 2013-03-04 23:47:14 · 178 阅读 · 0 评论 -
Block开发浅谈
一、block的定义及优点Apple文档说:A block is an anonymous inline collection of code, and sometimes also called a "closure".Block是一个C级别的语法以及运行时的一个特性,和标准C中的函数(函数指针)类似,但是其运行需要编译器和运行时支持。从ios4.0,Mac_OSX v10...原创 2013-03-27 19:04:16 · 187 阅读 · 0 评论 -
Objective-C中的NSObject对象经常使用到的方法
/* 用于判断对象是不是参数提供的类型(参数可以是父类的class) 参数示例: [NSObject class]; */ - (BOOL)isKindOfClass:(Class)aClass; /* 用于判断对象是不是参数提供的类型(参数不可以是父类的class) 参数示例: [NSObject class]; */ - (BOOL)isMemberOfClass:(Class)aClass...原创 2012-08-10 23:53:15 · 65 阅读 · 0 评论 -
id nil Nil SET IMP 等概念
来看看 Objective-C 语言中的头文件 objc.h 的定义 : // objc.htypedef struct objc_class *Class;typedef struct objc_object { Class isa;} *id;typedef struct objc_selector *SEL;typedef id (...原创 2012-08-10 23:53:48 · 112 阅读 · 0 评论 -
ios学习笔记之block在ios开发中的应用
一、什么是Blocks Block是一个C级别的语法以及运行时的一个特性,和标准C中的函数(函数指针)类似,但是其运行需要编译器和运行时支持,从ios4.0开始就很好的支持Block。 二、在ios开发中,什么情况下使用Block Block除了能够定义参数列表、返回类型外,还能够获取被定义时的词法范围内的状态(比如局部变量),并且在一定条件下(比如使用__block变量)...原创 2013-01-24 17:28:03 · 58 阅读 · 0 评论