Foundation 框架
定义了一些基础类,可以用于各种典型的cocoa程序
层次的根是NSObject类,定义了基本的对象属性和行为
的剩余部分由几组
Application 框架
实现图形、事件驱动用户界面所需的对象:窗口,对话框,按键,菜单,滚动条,文本输入框等;
由超过125个类和协议组成。所有的类最终都从Foundation框架的NSObject 类继承而来。
2.NSRange
typedef struct _NSRange {
unsigned int location;
unsigned int length;
}NSRange;
struct _NSRange = NSRange
含义:
一个结构体,表示相关事物的范围。
location 字段为该范围的起始位置;
length字段为该范围内所含元素个数。
创建方式:
直接给字段赋值
应用c语言的聚合结构赋值机制
使用cocoa提供的快捷函数NSMakeRange()
例子:
对字符串取子串
#import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { //输出ipa NSString *homebrew = @"Imperial india pale ale(ipa)"; NSRange range = NSMakeRange(25, 3); //一下代码等价 // NSRange range = {25,3}; NSLog(@"beer shortname:%@",[homebrew substringWithRange:range]); return 0; }
结果是 ipa;
3.NSPoint
初始化 NSPoint 使用函数NSMakePoint
NSPoint p = NSMakePoint(10,45);
从一个结构体变量获取坐标
float x = p.x;
float y = p.y;
4.NSSize
初始化NSSize
NSSize s = NSMakeSize(10,45)
从一个结构体变量获取width,heigth
float width = s.width;
float height = s.heigth;
5.NSRect
一个结构体,由点,大小组成而成;存储一个矩形的起始点和长度,宽度。
#import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { NSRect r1 = NSMakeRect(0, 0, 100, 120); NSRect r2 = {0,0,100,120}; //对结构体最底层的成员赋值 NSRect r3; r3.origin.x = 0.0; r3.origin.y = 0.0; r3.size.width = 100.0; r3.size.height = 120.0; return 0; }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Q:
常见的数据都是c的struct而不是oc对象?因为性能,oc对象是通过动态分配,而动态分配是一个代价较高的操作,会消耗大量的时间。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
6.可变对象和不可变对象
创建一个oc对象后,该对象的内容不可更改,则称该对象为不可变对象。
仅可进行读操作,不能进行写操作;
该对象内容可以更改,则称为可变对象
即可进行读操作,也可进行写操作,还可改变大小。
7.NSString
NSString是不可变的,即一旦创建则不可改变,可对它执行各种读操作,但不能删除,添加字符,也不可改变内容。
NSString是一个对象类型,是NSObject的子类,具有NSObject的所有特性。