Objective-C:Foundation框架-结构体
在Foundation中定义了很多常用结构体类型来简化我们的日常开发,这些结构体完全采用Objective-C定义,和我们自己定义的结构体没有任何区别,之所以由框架为我们提供完全是为了简化我们的开发。常用的结构体有NSRange、NSPoint、NSSize、NSRect等。
先复习下结构体的两种定义方式:
void test() {
// 定义了Date这种结构体类型
struct Date {
int year;
int month;
int day;
};
// 定义结构体变量
struct Date d = {, , };
d.day = ;
}
void test1() {
typedef struct Date {
int year;
int month;
int day;
} MyDate;
MyDate d = {, , };
}
1.NSRange
这个结构体用来表示一个事物的范围,通常是字符串里的字符范围或者集合里的元素范围。通常有三种方式创建NSRange变量。
- 第一种:直接给成员赋值
NSRange range;
range.location = 2;
range.length = 5;
- 第二种:应用C语言的聚合结构赋值机制
NSRange range = {2, 5};
或者,
NSRange range = {.location = 2, .length = 3};
- 第三种:Foundation框架提供的一个快捷函数NSMakeRange(推荐使用)
void range() {
NSRange range = NSMakeRange(, );
NSLog(@"location:%zi", range.location);
NSLog(@"length:%zi", range.length);
NSString *str = NSStringFromRange(range);
NSLog(@"%@", str);
// NSLog(@"%@", range); 错误的做法,%@代表着OC对象
}
备注:OC中的方法和函数略有区别:方法是要通过类名(+)或对象(-)来调用的。
2.NSPoint
NSPoint和CGPoint是等价的,表示平面中的一个点。其创建方法与NSRange类似:
void point() {
// NSPoint p;
CGPoint p;
p.x = ;
p.y = ;
p = NSMakePoint(, );
// 常见的方式
p = CGPointMake(, );
NSString *str = NSStringFromPoint(p);
NSLog(@"%@", str);
}
3.NSSize
NSSize和CGSize等价,用来存储宽度和高度。其创建方式类似:
void size() {
CGSize size; // NSSize size;
size.width = ;
size.height = ;
size = NSMakeSize(, );
size = CGSizeMake(, );
NSString *str = NSStringFromSize(size);
NSLog(@"%@", str);
}
4.NSRect
NSRect与CGRect等价,用来存储矩形,其内部又包含了两个结构体:CGPoint和CGSize。其创建方式类似:
void rect() {
NSRect rect; // CGRect rect;
rect.origin.x = ;
rect.origin.y = ;
rect.size.width = ;
rect.size.height = ;
rect = NSMakeRect(, , , );
rect = CGRectMake(, , , );
NSString *str = NSStringFromRect(rect);
NSLog(@"%@", str);
}
Objective-C:Foundation框架-结构体的更多相关文章
- foundation框架—结构体
Foundation框架—结构体 一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框 ...
- 李洪强iOS开发之Foundation框架—结构体
Foundation框架—结构体 一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框 ...
- Foundation框架 - 结构体
一.基础知识 如果要想使用 Foundation 框架的数据类型,那么包含它的主头文件就可以了.即 #import <Foundation/Foundation.h> 补充: Core F ...
- OC Foundation框架—结构体
一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...
- 黑马程序员——OC语言Foundation框架 结构体
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)结构体 NSRange(location length) NSPoi ...
- Objective - c Foundation 框架详解2
Objective - c Foundation 框架详解2 Collection Agency Cocoa provides a number of collection classes such ...
- 「Foundation」结构体
一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...
- iOS-Foundation框架—结构体(转载)
一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...
- 八、Foundation -常用结构体
一.NSRange 在foundation/NSRange.h中对NSRange的定义 typedef struct _NSRange{ NSUInteger location; NSUInteger ...
随机推荐
- 坐标随鼠标移动 jquery简易版
<html> <span style="position:absolute" id="xy_test"></span> &l ...
- iOS - UIApplication
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIApplication : UIResponder @available(iOS 2.0, *) public ...
- 硬盘坏道 检测/修复 Windows
1. 主要参看了:http://jingyan.baidu.com/article/2c8c281dfd93df0008252a9b.html 2. 2.1.hdtunepro.zip 是在 http ...
- apiCloud中图片裁剪模块FNImageClip的使用
思路 1.获取需裁剪图片的地址 2.跳转到裁剪页面 3.裁剪成功返回新图片地址 4.替换原有图片地址 增加修饰和事件 str += '<li class="tu image" ...
- jQuery学习笔记:attr()与prop()的区别
先看看官方文档是如何解释两者之间功能差异的: attr() Get the value of an attribute for the first element in the set of matc ...
- HTTP POST GET 本质区别详解
HTTP POST GET 本质区别详解 一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式:在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交 Ht ...
- lftp
linux安装FTP工具 lftp及使用教程 来源:网络 发布时间:2013-05-24 15:21 字体:[大 中 小] 点击2510次 linux下可以直接通过FTP命令进行ftp上传下载,不 ...
- MyEclipse/Eclipse中XML文件的格式化配置
Eclipse中XML文件的格式化配置 MyEclipse: 这一步的配置是使格式化的效果为控件的每个属性配置占一行.进入 Window/Preferences,展开到 XML/XML Resourc ...
- phalcon: dispatcher调度控制器
phalcon: dispatcher调度控制器 我所理解的dispatcher调度控制器,实际上是对 router或者特定的url参数给与重组. 引用特定的类: //add use Phalcon\ ...
- phalcon: 获取参数的方法
phalcon: 获取参数的方法 一般情况下:GET/POST $this->request->get(参数); $this->request->getPost("参 ...