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

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

概述Foundation 框架  定义了一些基础类,可以用于各种典型的cocoa程序 层次的根是NSObject类,定义了基本的对象属性和行为 的剩余部分由几组 Application 框架 实现图形、事件驱动用户界面所需的对象:窗口,对话框,按键,菜单,滚动条,文本输入框等; 由超过125个类和协议组成。所有的类最终都从Foundation框架的NSObject 类继承而来。 2.NSRange t

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,100,120);        NSRect r2 = {0,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的所有特性。

总结

以上是内存溢出为你收集整理的20120810-课堂笔记--FoundationKit,NSRange,NSPoint,NSSize,NSRect,可变对象全部内容,希望文章能够帮你解决20120810-课堂笔记--FoundationKit,NSRange,NSPoint,NSSize,NSRect,可变对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1056509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存