Objective-C:Foundation框架

Foundation框架

NSString、NSMutableString、NSNumber(基本数据类型包装类)、NSValue(特殊类型包装类:指针、数组、结构体)、NSArray、NSMutableArray、NSDectionary、NSSet等等。

一、不可变字符串NSString类、可变字符串NSMutableString类(是不可变字符串的子类)
1、字符串对象的创建

<1>常量字符串的对象 :最基本的个格式  NSString *str = @“dshsd”;

<2>通过类方法创建字符串: +(NSString*)stringWithString:(NSString *)

<3>通过实例方法创建:   -(NSString*)initWithString:(NSString* )

<4>格式化字符串方式创建:  +(NSString*)stringWithFormat:(NSString*……)

<5>通过C语言字符串的创建:  +(NSString*)stringWithUTF8String:(char *)

<6>通过文件的方式创建字符串:

-(NSString*)initWithContentsOfFile:(NSString *path) usedEncoding:(NSUInteger ) error:(NSError* )

<7>通过网络数据创建字符串:

+(NSString*)stringWithContentsOfURL: (NSURL* ) encoding:(NSStringEncoding ) error:(NSError* )

2、字符串的搜索

注释:NSRange是结构体,包含两个的数据为:NSUInteger Location(指定字符串的开始位置索引) 、NSUInteger Length(指定字符串的长度)

<1>搜索字符串:

-(NSRange )rangeOfString:(NSString *)

<2>查找字符串是不是以什么前缀开始:

-(BOOL)hasPrefix:(NSString *)

<3>查找字符串是不是以什么后缀开始:

-(BOOL)hasSuffix:(NSString *)

<4>在字符串中截取字串:

-(NSString*)substringWithRange:(NSRange )

或者   -(NSString*)substringFromIndex:(NSUInteger)

3、字符串的比较

<1>判断两个对象是不是同一个对象

- (BOOL)isEqual:(id)object;

或者- (BOOL)isEqualTo:(id)object;

<2>判断字符串是否相等

- (BOOL)isEqualToString:(NSString *)aString;

<3>字符串的比较

-(NSComparisonResult)compare:(NSString*)string;

返回值NSComparisonResult有以下三个:

NSOrderedAscending:表示“<”, NSOrderedSame:表示”=", NSOrderedDescending:表示”>"

4、字符串与其他类型的转变

<1>其它类型转换成字符串

+(NSString*)stringWithFormat:foomat…;

<2>字符串转换为整型、实型、布尔型等

- (NSInteger)integerValue

- (int)intValue;

- (CGFloat)doubleValue;

- (double)doubleValue;

- (float)floatValue;

- (BOOL)boolValue

<4>字符串转换为C语言的字符串

-(const void *)UTF8String;

5、可变字符串NSMutableString(增、删、改、查)

<1>创建一个固定容量的可变数组

+ (id)stringWithCapacity:(NSUInteger)capacity;

<2>在索引处插入内容

- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;

<3>删除内容

- (void)deleteCharactersInRange:(NSRange)range;

<4>添加内容(在尾部添加)

- (void)appendString:(NSString *)aString;

- (void)appendFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);

<5>完全设置成其他的字符串

- (void)setString:(NSString *)aString;

<6>替换

- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;

二、 NSNumber类

(1)将基本的数据类型包装为类类型 即基本数据类型包装类

- (id)initWithChar:(char)value;

- (id)initWithUnsignedChar:(unsigned char)value;

- (id)initWithShort:(short)value;

- (id)initWithUnsignedShort:(unsigned short)value;

- (id)initWithInt:(int)value;

- (id)initWithUnsignedInt:(unsigned int)value;

- (id)initWithLong:(long)value;

- (id)initWithUnsignedLong:(unsigned long)value;

- (id)initWithLongLong:(long long)value;

- (id)initWithUnsignedLongLong:(unsigned long long)value;

- (id)initWithFloat:(float)value;

- (id)initWithDouble:(double)value;

- (id)initWithBool:(BOOL)value;

+ (NSNumber *)numberWithChar:(char)value;

+ (NSNumber *)numberWithUnsignedChar:(unsigned char)value;

+ (NSNumber *)numberWithShort:(short)value;

+ (NSNumber *)numberWithUnsignedShort:(unsigned short)value;

+ (NSNumber *)numberWithInt:(int)value;

+ (NSNumber *)numberWithUnsignedInt:(unsigned int)value;

+ (NSNumber *)numberWithLong:(long)value;

+ (NSNumber *)numberWithUnsignedLong:(unsigned long)value;

+ (NSNumber *)numberWithLongLong:(long long)value;

+ (NSNumber *)numberWithUnsignedLongLong:(unsigned long long)value;

+ (NSNumber *)numberWithFloat:(float)value;

+ (NSNumber *)numberWithDouble:(double)value;

+ (NSNumber *)numberWithBool:(BOOL)value;

(2)包装后的类数据按照原类型取出来

- (char)charValue;

- (unsigned char)unsignedCharValue;

- (short)shortValue;

- (unsigned short)unsignedShortValue;

- (int)intValue;

- (unsigned int)unsignedIntValue;

- (long)longValue;

- (unsigned long)unsignedLongValue;

- (long long)longLongValue;

- (unsigned long long)unsignedLongLongValue;

- (float)floatValue;

- (double)doubleValue;

- (BOOL)boolValue;

三、 NSValue类

(1)将特殊基本类型包装为对象(例如结构体、数组、指针)

a.//将数组包装为类类型

+ (NSValue *)valueWithBytes:(const void *)value objCType:(const char *)type;

或者+ (NSValue *)valueWithPointer:(const void *)pointer;

//取出数组类型

- (void *)pointerValue;

b.//将指针包装为类类型

+ (NSValue *)valueWithPointer:(const void *)pointer;

//取出指针类型

- (void *)pointerValue;

c.//将结构体包装为类类型(Foundation中常用的结构体:NSRange\NSRect\NSSize\NSPoint)

首先创建结构体:(x、y为坐标原点)

NSRange range = NSMakeRange(location,length)

NSRect rect = NSMakeRect(x, y, width, height)

NSRange size = NSMakeSize(width,height)

NSRect point= NSMakePoint(x, y)

将结构体当做参数

+ (NSValue *)valueWithRange:(NSRange)range;

+ (NSValue *)valueWithPoint:(NSPoint)point;

+ (NSValue *)valueWithSize:(NSSize)size;

+ (NSValue *)valueWithRect:(NSRect)rect;

//取出结构体类型

- (NSPoint)pointValue;

- (NSSize)sizeValue;

- (NSRect)rectValue;

- (NSRange)rangeValue;

时间: 2024-11-02 01:24:44

Objective-C:Foundation框架的相关文章

Objective - c Foundation 框架详解2

Objective - c  Foundation 框架详解2 Collection Agency Cocoa provides a number of collection classes such as NSArray and NSDictionary whose instances exist just to hold onto other objects. cocoa 提供了一系列的集合类,例如,NSarray,NSdictionary.它们存在的目的就是为了保持其他对象. 1.1.1N

Objective C Foundation基础框架[转]

<pre class="cpp" name="code">iOS Foundation基础框架就是以Foundation.h头文件的库 #import <Foundation/Foundation.h> Mac OS X和iOS都使用了Foundation基础框架.该框架中有很多日后开发常用的API,非常基础重要.以下就常用的类和结构做个介绍. NSObjct NSObject类,是ObjC类族中的根类.NSObject有一些高级特性支持,在

Objective-C( Foundation框架 一 结构体)

NSRange是Foundation框架中常见的结构体它的定义如下: typedef struct _NSRange { // 范围的起始位置 NSUInteger location; // 范围的长度 NSUInteger length } NSUInteger的定义: typedef unsigned int NSInteger; typedef unsigned long NSUInteger; NSRange创建的几种方式 NSRange range; range.location =

Objective-C语言Foundation框架

Mac OS X开发会使用Cocoa框架,它是一种支持应用程序提供丰富用户体验的框架,它实际上由:Foundation和Application Kit(AppKit)框架组成.iOS开发,会使用Cocoa Touch框架,它实际上由:Foundation和UIKit框架组成. • AppKit和UIKit框架都是与窗口.按钮.列表等相关的类.Foundation是Mac OS X和iOS应用程序开发的基础框架,它包括了一些基本的类,如:数字.字符串.数组.字典等. • 基本数据类型,int.ch

OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)

1.NSNumber 这个类主要是用来封装基本类型的,说到这里,就不得不说一下了: OC中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去,这个类似于Java中的自动装箱和拆箱,Java中的集合其实也是不允许存入基本类型的,但是我们任然看可以那么操作,就是因为有自动装箱功能,如果你将Eclipse的JDK改成5.0之前的,你看看还能操作吗.. 注:那为什么基本类型不能存入到集合中呢? 原因是在操作集合的时候会操作集合元素中的方法,但是基本类型是没有

黑马程序员--Foundation框架之--NSDirctionary类以及它的子类NSMutableDirctionary类

------IOS培训期待与您交流! ------- 今天来看一下Foundation框架中的NSDirctionary 类,NSMutableDirctionary类,OC中叫字典,字典是无序的,这个和NSArray不一样. 一.NSDirctionary类 1.创建方法 // 字典的创建 NSArray *array1 = [NSArray arrayWithObjects:@"zhangsan",@"zhangfei", nil nil]; NSArray *

Foundation框架介绍

1.Foundation框架介绍 什么是框架? 众多功能\API的集合 框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易,在OS X下的Mac操作系统中大约有80个框架,为所有程序开发奠定基础的框架称为Foundation 框架 Foundation框架的作用 Foundation框架是Mac\iOS中其他框架的基础 Foundation框架包含了很多开发中常用的数据类型: 结构体 枚举 类 如何使用Foundation框架 Foundation框架中大约有

OC学习篇之---Foundation框架中的NSDictionary类以及NSMutableDictionary类

今天来看一下Foundation框架中的NSDictionary类,NSMutableDictionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和NSArray不一样,Java中的Map也是无序的,通过hash值去检索元素的. 一.NSDictionary类 [objc] view plain copy // //  main.m //  19_NSDictionary // //  Created by jiangwei on 14-10-

Foundation框架的基本对象之数组对象

在程序设计中数组的使用非常频繁,Foundation框架提供了NS数组类型,NS数组类型包括可修改的和不可修改两种,只能用来存放相关的对象类型,OC为我们提供了相关的基本的数组操作,并对相关的数组操作进行了封装. 数组的定义 我们可以简单的把数组看做是把同一类型的数据有序的进行排列,进行同一存储,即同种类型数据的集合. 数组的声明 数组声明和变量声明类似 格式:数组类型  数组名[数组大小]例如 :int score[5]; 数据类型  数组名[长度]=[数值1,数值2,……,数值n]. 例如:

魏兆辉的IOS基础学习笔记之十一 OC语言基础-06 Foundation框架介绍

在之前的博文中,我们创建的项目文件的时候,默认都有引用#import <Foundation/foundation.h> 这个头文件.但是,之前我们对Foundation都没有展开介绍.这篇博文,我们就揭开它神秘的面纱. 之前,我们有提到过OC使用的是Cocoa框架.那么Cocoa和Foundation之间,有啥关联呢?实际上,Cocoa是由许多个不同的框架组成的.最常用的是Foundation和Application Kit. Foundation框架中有很多有用的.面向数据的简单类和数据类