Cocoa实际上是由许多个不同的框架组成的,其中最常用于桌面端(OS X)应用程序的是Foundation和Application Kit。它包含了所有的用户界面对象和高级类。如果打算开发ios平台上的应用程序,那么需要用到User Interface Kit(UIKit)框架。它包含了IOS应用所需要的所有界面对象。
 
typedef struct _NSRange
{
     unsigned int location;
     unsigned int length;
} NSRange;
 
这个结构体用来表示相关事物的范围,通常是字符串里的字符范围或者数组里的元素范围。location字段存放该范围的其实位置,而length字段则是该范围内所含元素的个数。“Object-c is a      cool lanaguage”中,单词cool可以用location为17,length为4的范围来表示。location还可以用NSNotFound这个值来表示没有范围,比如变量没有初始化。
创建新的NSRange有三种方式。
1:NSRange range;
range.location = 17;
range.length = 4;
2:NSRange range = {17, 4};
3:Cocoa提供了一个快键函数NSMakeRange()
     NSRange range = NSMakeRange(17, 4);//好处是这个函数可以在任何想用的地方调用它
 
CGPoint表示的是笛卡尔平面中的一个坐标(x, y)
struct CGPoint
{
     float x;
     float y;
};
 
CGSize用来存储长度和宽度
struct CGSize
{
     float width;
     float height;
};
 
Cocoa提供了一个矩形数据类型,它由坐标和大小复合而成
struct CGRect
{
     CGPoint orign;
     CGSize size;
};
Cocoa为以上三种结构提供了快键函数:CGPointMake()、CGSizeMake()和CGRectMake()。
 
字符串:
+  (id) stringWithFormat: (NSString*) format,….;
height = [NSString stringWithFormat:@“your is %d”, 5];
在声明方法时添加了加号,就是把这个方法定义为类方法(class method)。这个方法属于类对象(而不是类的实例对象),通常用于创建新的实例。称这种用来创建新对象的类方法为工厂方法(factory method)。
stringWithFormat:就是一个工厂方法,它根据你提供的参数创建新对象。
 
- (NSUInteger) length;//返回字符串中的字符个数
NSUInteger length = [height length];
 
字符串比较:
- (BOOL) isEqualToString: (NSString*) aString;
isEqualToString:可以用来比较接收方(receiver, 接受消息的对象)和作为参数传递过来的字符串。
 
- (NSComparisonResult) compare: (NSString*) aString;
要比较两个字符串,可以使用Compare:方法,接收对象传递过来的字符串逐个进行比较,它返回一个NSComparisonResult(也就是一个enum)来显示比较结果。
enum
{
     NSOrderedAscending = -1,
     NSOrderedSame,
     NSOrderedDescending
};
typedef NSInterger NSComparisonResult;
 
compare:进行的时区分大小写的比较。
方法compare:options:给我们更多选择权
- (NSComparisonResult) compare: (NSString *) aString
                                        options: (NSStringCompareOptions) mask
options参数是一个掩位码,使用位或bitwise-OR运算符(|)来添加选项标记。
NSCaseInsensitiveSearch: 不区分大小写字符
NSLiteralSearch: 进行完全比较,区分大小写字符
NSNumericSearch: 比较字符串的字符个数,而不是字符串值。
if ([things1 compare:things2 options: NSCaseInsensitiveSearch | NSNumericSearch] == NSOrderedSame)
{
     NSLog(@“They match!”);
}
 
- (BOOL) hasPrefix: (NSString*) aString;//检查字符串是否以另一个字符串开头
- (BOOL) hasSuffix: (NSString*) aString    //检查字符串是否以另一个字符串结尾
 
- (NSRange) rangeOfString:(NSString*) aString;//想知道字符串内的某处是否包含其他字符串
 
NSString是不可变(immutable)的,可以对它执行各种操作,如生成新的字符串、查找、比较,但不能删除字符改变它,Cocoa提供了一个NSString的子类,叫做NSMutableString,如果想改变字符串,请使用这个类。
+ (id) stringWithCapacity: (NSUInteger) capacity;//创建一个新的对象
- (void) deleteCharactersInRange: (NSRange) aRange;方法删除字符串中的字符
 
NSArray是一个Cocoa类,用来存储对象的有序列表,可以在NSArray中存放任意类型的对象,甚至是其他数组或字典对象。不可以存储C语言的基础类型和NSArray的随机指针,也不能存储nil。
NSArray *array = [NSArray arrayWithObjects:@“one”, @“two”,@“three”,nil];
NSArray *array2 = @[@“one”, @“two”, @“three"];
使用字面量语法时不必再结尾处特意补上nil.
 
NSEnumerator *enumerator = [array objectEnumerator];
while(id thingie = [enumerator nextObject]){
     NSLog (@“I found %@“, thingie);

Foundation Kit介绍的更多相关文章

  1. 第8章 Foundation Kit介绍

    本文转载至  http://blog.csdn.net/mouyong/article/details/16947321 Objective-C是一门非常精巧实用的语言,目前我们还没有研究完它提供的全 ...

  2. ObjC: Foundation Kit

    转自:http://marshal.easymorse.com/tech/objc-foundation-kit Foundation Kit是什么? 你可以把它看作Java JDK中的java.la ...

  3. Core Foundation框架介绍

    Core Foundation框架介绍 **参考网址: ARC下OC对象和CF对象之间的桥接 Core Foundation框架介绍 Core Foundation框架 Core Foundation ...

  4. Foundation框架介绍

    1.Foundation框架介绍 什么是框架? 众多功能\API的集合 框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易,在OS X下的Mac操作系统中大约有80 ...

  5. 《objective-c基础教程》学习笔记(九)—— Foundation框架介绍

    在之前的博文中,我们创建的项目文件的时候,默认都有引用#import <Foundation/foundation.h> 这个头文件.但是,之前我们对Foundation都没有展开介绍.这 ...

  6. TFS(Team Foundation Server)介绍和入门

    在本文的两个部分中,我将介绍Team Foundation Server的一些核心特征,重点介绍在本产品的日常应用中是怎样将这些特性结合在一起使用的. 作为一名软件开发者,在我的职业生涯中,我常常会用 ...

  7. 【索引】Objective-C基础教程-读书笔记

    第1章 启程 http://www.cnblogs.com/duxiuxing/p/5492219.html 第2章 对C的扩展 第3章  面向对象编程的基础知识 第4章 继承 第5章 复合 第6章 ...

  8. oc语言的Foundation框架(学习笔记1)

    Foundation框架 1.Foundation框架介绍 框架是由许多类.方法.函数以及文档按照一定的规则组合的起来的集合. cocoa程序编写主要用到2个框架Foundation和Applicat ...

  9. OC 知识:Foundation 框架及相关类详尽总结

    本文用来介绍Foundation框架的相关知识,以及Foundation框架所提供类的相关知识总结. 1. 框架介绍 框架是由很多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使开发程序变得更加 ...

随机推荐

  1. github 之 下载历史版本

    1.打开github中要下载的项目 2.点击commits 点击上图中标记的地方,进入下图所示: 3. 选择列表中的某个版本 4. Browse Files 5. 下载 点击上图中的 Download ...

  2. Zepto.js入门介绍

    GitHub Zepto Zepto的一些可选功能是专门针对移动端浏览器的:因为它的最初目标在移动端提供一个精简的类似jquery的js库. Zepto不支持旧版本的Internet Explorer ...

  3. thinkphp 3.2 模型的使用示例

    原来以为thinkPHP的 model 就和PHPCMS一样  就起到一个连接数据库的作用,今天看了视频,才发现这个也是 mvc中的m 使用方法可以使用 D() 方法 下面是 UserControll ...

  4. spring mvc 引用 jasper JasperReportsHtmlView的nullpx图片问题

    spring mvc 引用 jasper  JasperReportsHtmlView的nullpx图片问题 参考:http://stackoverflow.com/questions/1168633 ...

  5. netcat工具的使用

    用途:网络管理工具. 可以读,写TCP或UDP 网络连接.简写为:nc 常见参数: -h  帮助信息 -l 坚挺模式 -n 指定IP地址 -p 指定端口号 -v 详细输出 1 客户端:很容易建立一个客 ...

  6. 在Winfrom下实现类似百度、Google搜索自能提示功能

    前记:数据源来自页面的一个ComboBox的数据源List<Contract>集合 页面放置一个TextBox(搜索框).ListBox(显示搜索出来的数据),ListBox位置位于Tex ...

  7. 在windows下安装运行disconf

    一.环境准备 1.下载disconf源码 (本文以2.6.36为例) https://github.com/knightliao/disconf 2.下载nginx1.10.2(windows版) h ...

  8. ubuntu linux 设置环境变量

    添加环境变量 1.添加临时变量 终端中输入: PATH="$PATH:yourpath" :yourpath是要添加的环境变量(即要添加目录的绝对路径,例:/home/myprog ...

  9. 微信前端面试题----js实现LazyMan

    这是微信小程序的一道面试题,题目是这样的: 实现一个LazyMan,可以按照以下方式调用:LazyMan("Hank")输出:Hi! This is Hank! LazyMan(& ...

  10. ABP入门系列(10)——扩展AbpSession

    ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 一.AbpSession是Session吗? 1.首先来看看它们分别对应的类型是什么? 查看源码发 ...