Category的用途,在对类不继承的前提下,对类扩展、对类方法的重写。优点是可以不同的程序员写对应的扩展在不同的文件里,然后引用的方式互不干扰,比继承要方便。
栗子:
NSString+URLFormat.h文件:
#import <Foundation/Foundation.h>
@interface NSString (URLFormat)
- (NSString *)stringByURLFormat:(NSDictionary *)dictionary;
@end
NSString+URLFormat.m文件
#import "NSString+URLFormat.h"
@implementation NSString (URLFormat)
- (NSString *)stringByURLFormat:(NSMutableDictionary *)dictionary{
if([dictionary count]==0)
return self;
NSMutableString* url = [[NSMutableString alloc] initWithString:self];
[url appendString:@"?"];
NSEnumerator * enumerator = [dictionary keyEnumerator];
id obj;
while( obj = [enumerator nextObject]) {
NSString* val = [dictionary objectForKey:obj];
NSString* param =(NSString*)obj;
if (val) {
if(![url hasSuffix:@"?"]){
[url appendFormat:@"&"];
}
[url appendFormat:@"%@=%@", param, val];
}
}
if([url hasSuffix:@"?"])
[url deleteCharactersInRange:NSMakeRange (url.length-1, 1)];
return url;
}
@end
分享到:
相关推荐
本教程将通过一系列的PPT课件,引导你快速入门Objective-C,这些课件覆盖了从基础到高级的重要概念,是《iPhone与iPad开发实战》一书中关于语言学习的前半部分内容。 首先,我们从"第一讲 Objective-C概述"开始,这...
以上就是Objective-C编程的一些主要知识点,通过深入学习和实践这些概念,开发者可以熟练地创建高质量的iOS和macOS应用程序。"Objective-C编程全解最新版.pdf"教程应该覆盖了这些内容,为初学者提供了详尽的指导。
3. **Objective-C语法**:深入解析Objective-C的语法特性,如消息传递、方法定义、属性声明、类别(Category)和协议(Protocol)等,以及如何使用这些特性编写代码。 4. **Foundation框架**:介绍Objective-C开发...
这个压缩包包含两个关于Objective-C的学习资源:"Programming In Objective-C.chm" 和 "Programming in Objective-C.2.0 中文版.pdf"。这两个文件分别以CHM(Microsoft帮助文档格式)和PDF(便携式文档格式)呈现,...
以下将详细阐述Objective-C的一些关键概念和知识点。 1. **Objective-C的起源与语法特性**: Objective-C是在C语言基础上扩展的,它引入了消息传递机制和类的概念,使得C语言具备了面向对象的能力。Objective-C的...
本教程的源码下载是为了辅助学习Objective-C基础知识而准备的。在深入探讨这些源码之前,让我们先了解一下Objective-C的关键概念。 1. **面向对象编程基础**: Objective-C是C语言的超集,它扩展了C语言,加入了...
8. **Category与Extension**:Objective-C允许通过Category来扩展已有类的功能,而Extension则可以为类提供私有实现。 9. **NSPredicate和KVC/KVO**:NSPredicate用于过滤和查询数据,Key-Value Coding (KVC)和Key-...
总的来说,Objective-C 是一个强大且灵活的语言,虽然现在 Swift 已成为苹果官方推荐的开发语言,但 Objective-C 仍然在许多现有项目中广泛使用,而且理解其基本概念对学习 Swift 也非常有帮助。通过逐步学习和实践...
1. **基础语法**:学习Objective-C首先需要了解它的基本语法,包括变量定义、数据类型、运算符、流程控制语句等。此外,还会涉及Objective-C中的特殊语法,如nil和NULL的区别、实例变量和属性的使用。 2. **类与...
3. **类别(Category)**:Objective-C允许通过类别给已有的类添加方法,这是扩展类功能的一种方式。了解如何使用`@interface`定义类别并添加方法。 4. **协议(Protocol)**:协议类似于Java或C#的接口,定义了一...
以下是一些关于Objective-C的关键知识点: 1. **类与对象**:Objective-C是基于Smalltalk的,它引入了类(Class)的概念,这是创建对象(Object)的蓝图。对象是数据和方法的封装,它们通过消息传递来相互交流。 2...
这个"Learn Objective-C 中文版 v2"的学习资源可能是针对那些希望深入理解Objective-C语言特性和编程实践的开发者设计的。下面我们将详细探讨Objective-C的关键知识点。 1. **面向对象编程基础**: - **类与对象**...
总之,"objective-c的一些代码"涵盖了Objective-C语言的基础、面向对象编程的原理以及iOS和macOS开发中的实际应用场景。通过练习、作业和课堂示例,开发者可以逐步掌握这个语言并成为熟练的iOS或macOS开发者。
3. **块(Blocks)**:Objective-C的块是一种内联函数,可以捕获并存储其定义时的作用域内的变量。它们在处理异步操作和回调时非常实用。 4. **懒加载(Lazy Loading)**:这是一种优化技术,延迟初始化直到真正...
学习Objective-C的关键在于理解其特有的类(Class)、对象(Object)、协议(Protocol)以及Category等概念。 1. 类与对象:Objective-C的类基于C++的结构,但增加了元类(Meta-Class)的概念,支持运行时类型检查...
这个"Objective-C语言教程与案例.zip"压缩包包含了一份详尽的教程和实际案例,旨在帮助学习者深入理解并熟练掌握Objective-C。 文档资料.docx可能是教程的主要部分,它可能涵盖了以下知识点: 1. **Objective-C...
Objective-C是一种强大的面向对象的编程语言,主要用于Apple的Mac OS X和iOS操作系统。它在C语言的基础上添加了Smalltalk...通过学习本书,开发者可以全面掌握Objective-C语言,并具备开发高质量iOS和Mac应用的能力。
此外,还会讲解分类(Category)和扩展(Extension),它们是Objective-C中增强已有类功能的独特方式。 Objective-C的另一个重要特性是动态类型和运行时系统。动态类型意味着对象的实际类型可以在程序运行时确定,...
《Learn Objective-C on the Mac eBook》是一本专为Mac用户设计的深入学习Objective-C的电子书,其中包含了丰富的实例和代码示例。Objective-C是一种强大的编程语言,尤其在苹果的iOS和macOS平台上广泛使用。这本书...
Objective-C中的类别(Category)允许我们为已存在的类添加新的方法,而无需子类化。这在不修改原有代码的情况下扩展类的功能时非常有用。例如,我们可以为NSArray添加一个方便的查找方法。 Block(块)是Objective...