20120810-课堂笔记--FoundationKit,NSRange,NSPoint,NSSize,NSRect,可变对象

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的所有特性。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值