Xcode4.4引入了LLVM 4.0编译器,该编译器为Objective-C提供了一些增强特性,下标表示法就是其中之一。大大简化了容器变量的使用,同时又很好地增强了可读性。让我们看一看下面这段代码:
NSArray * array = @[@"a", @"b", @"c"];
NSLog(@"%@", [array objectAtIndex:0]);
NSLog(@"%@", array[0]);
第一句代码,是另一个新的特性—字面量表示法,数组对象以后可以使用这种方式直接构建。
第二句和第三句代码等价,第三句代码就使用了下标表示法,这样看是不是比原来的写法简单多了。
这里要特别提一下,如果你开发的是MacOS的应用,那么下标表示法可以直接使用了。但是如果你开发的是iOS,那么很不幸,在Xcode4.4中还不能为开发iOS的应用,直接使用下标表示法。原因在于,iOS的SDK还没有像MacOS的SDK那样完整实现了所有新特性。不过,我们可以通过添加一个Category的方式来获取下标表示法的能力。代码如下:
@interface NSObject(subscripts)
- (id)objectAtIndexedSubscript:(NSUInteger)idx;
- (void)setObject:(id)obj atIndexedSubscript:(NSUInteger)idx;
- (void)setObject:(id)obj forKeyedSubscript:(id <NSCopying>)key;
- (id)objectForKeyedSubscript:(id)key;
@end
将这段代码封在NSObject+subscripts.h文件中,在需要使用下标表示法的文件中include即可。
警告:因为引入了这个头文件,所有的对象都自动获取了下标表示法的能力。但是并不是所有的对象都能正常运行下标表示法。一般情况下,容器类对象(如NSArray、NSDictionary等),可以正常运行。
以下代码可以正确执行。
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
dict[@"foo"] = @"bar";
不能正确执行。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSLog(@"the value of key is %@", userDefaults[@"key"]);
分享到:
相关推荐
《Objective-C 程序设计(第4版)》已经为iOS 5和Xcode4.2中的重大变更做了全面更新,最大的改动是引入了自动引用计数(ARC),并详细说明了如何在Objective-C编程过程中使用ARC提升和简化内存管理。
3.2 在面向对象的编程中使用间接24 3.2.1 过程式编程24 3.2.2 实现面向对象编程29 3.3 学习有关的术语33 3.4 Objective-C中的OOP34 3.4.1 @interface部分34 3.4.2 @implementation部分38 3.4.3 实例化对象40 ...
Xcode 使用技巧 Objective-C学习之路 iphone
NULL 博文链接:https://justsee.iteye.com/blog/1886685
此毕业论文设计为在虚拟机VMware下,MAC平台的开发平台XCode下基于OBjective-C语言的数据加密系统设计与实现,此加密系统为AES加密体系。 上传文件工程需在MAC平台下开发软件Xcode才能打开,打开里面有界面及程序...
● 如何在其他平台上使用Objective-C 凭借深入的代码示例与清晰的解释说明,本书将帮助你轻松解决iOS开发人员每天都 会面临的挑战。通过使用书中介绍的知识与技能,读者能够快速且高效地构建出功能完备 的应用。书
我就只要一分,小弟不才发现网络上很难找这种例子,而我查外文资料查了一天。给大家提供个方便吧!
iOS 7 Programming Fundamentals: Objective-C, Xcode, and Cocoa Basics by Matt Neuburg (Author) Publisher: O’Reilly Media (October 2013) Language: English ISBN-10: 1491945575 ISBN-13: 978-...
Pro Objective-C The Objective-C programming language continues to grow in popularity and usage because of the power and ease-of-use of the language itself, along with the numerous features that ...
Objective-C 分离 接口和实现文件,具体资料请参考苹果开发者Mike的博文http://blog.sina.com.cn/s/blog_7aa21f320100r7wn.html
3.2 在面向对象的编程中使用间接24 3.2.1 过程式编程24 3.2.2 实现面向对象编程29 3.3 学习有关的术语33 3.4 Objective-C中的OOP34 3.4.1 @interface部分34 3.4.2 @implementation部分38 3.4.3 实例化对象40 3.4.4 ...
除了在 Mac系统上使用Objective-C,你还可以在Windows上搭建Objective-C 环境,虽然该环境与mac xcode无法比拟,用于初学者学习objective-c还是可以的
Objective-C Programming: The Big Nerd Ranch Guide (2nd Edition).epub (epub 格式) Want to write iOS apps or desktop Mac applications? This introduction to programming and the Objective-C language is ...
介绍完Xcode和Interface Builder之后,您将很快接触到Objective-C的面向对象编程概念,它是创建Mac OS X应用程序的首选语言。每章中都提供了不同的示例程序供您构建,通过循序渐进的指导来教给您Cocoa编程的基础。每...
这是一本Objective-C编程领域最畅销的书籍,...本书已经为iOS5HE Xcode4.2中的重大变更做了全面更新,最大的改动是引入了自动引用计数(ARC),并详细说明了如何在Objective-C编程过程中使用ARC提升和简化内存管理。
Book Description Updated for OS X 10.9 Mavericks, iOS 7, and Xcode 5 Programming in Objective-C is a concise, carefully written tutorial on the basics of Objective-C and object-oriented programming ...
自己在Xcode4下编写的Objective-C和C语言混编的计算器
本文主要介绍Objective-C对象模型的实现细节,以及Objective-C语言对象模型中对isaswizzling和methodswizzling的支持。希望本文能加深你对Objective-C对象的理解。Objective-C是一门面向对象的编程语言。每一个对象...