- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文以实例详细描述了Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect的定义及用法,具体如下所示:
1、NSRange:
NSRange的原型为 。
1
2
3
4
|
typedef
struct
_NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;
|
NSMakeRange的函数:
NS_INLINEz是内联函数 。
1
2
3
4
5
6
7
8
|
typedef
NSRange *NSRangePointer;
NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) {
NSRange r;
r.location = loc;
r.length = len;
return
r;
}
|
使用方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
//NSRange表示的是范围
NSRange range;
range.location = 18;
range.length = 34;
NSLog(@
"location is %zi"
,range.location);
NSLog(@
"length is %zi"
,range.length);
//快速创建
range = NSMakeRange(8, 10);
NSLog(@
"location is %zi"
,range.location);
NSLog(@
"length is %zi"
,range.length);
//NSStringFromRange将上面的结构体转化成字符串类型,打印出来
NSString* str1 = NSStringFromRange(range);
//%@是一个OC对象,range代表的是一个结构体,str是一个OC对象
NSLog(@
"rang is %@"
,str1);
|
2、NSPoint:
NSPoint的原型:
1
2
3
4
|
struct
CGPoint {
CGFloat x;
CGFloat y;
};
|
NSMakePoint函数:
1
2
3
4
5
6
|
NS_INLINE NSPoint NSMakePoint(CGFloat x, CGFloat y) {
NSPoint p;
p.x = x;
p.y = y;
return
p;
}
|
CGPointMake函数:
1
2
3
4
|
CGPointMake(CGFloat x, CGFloat y)
{
CGPoint p; p.x = x; p.y = y;
return
p;
}
|
使用方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//NSPoint指的是位置
NSPoint point;
//给结构体里面的点进行赋值
point.x = 10;
point.y = 10;
//快速创建点
point = NSMakePoint(10, 18);
//常见的是CGPointMake创建点的函数
point = CGPointMake(29, 78);
NSString* str2 = NSStringFromPoint(point);
NSLog(@
"point is %@"
,str2);
|
3、CGSize:
CGSize的原型:
1
2
3
4
|
struct
CGSize {
CGFloat width;
CGFloat height;
};
|
NSMakeSize函数:
1
2
3
4
5
6
|
NS_INLINE NSSize NSMakeSize(CGFloat w, CGFloat h) {
NSSize s;
s.width = w;
s.height = h;
return
s;
}
|
CGSizeMake函数:
1
2
3
4
|
CGSizeMake(CGFloat width, CGFloat height)
{
CGSize size; size.width = width; size.height = height;
return
size;
}
|
使用方法:
1
2
3
4
5
6
7
8
9
|
NSSize size;
size.width = 100;
size.height = 12;
size = NSMakeSize(12, 12);
size = CGSizeMake(11, 11);
NSString* str3 = NSStringFromSize(size);
NSLog(@
"%@"
,str3);
|
4、CGRect:
CGRect的原型:
1
2
3
4
|
struct
CGRect {
CGPoint origin;
CGSize size;
};
|
CGRectMake的函数:
1
2
3
4
5
6
7
|
CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
{
CGRect rect;
rect.origin.x = x; rect.origin.y = y;
rect.size.width = width; rect.size.height = height;
return
rect;
}
|
NSMakeRect函数:
1
2
3
4
5
6
7
8
|
NS_INLINE NSRect NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h) {
NSRect r;
r.origin.x = x;
r.origin.y = y;
r.size.width = w;
r.size.height = h;
return
r;
}
|
使用方法 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//既包含了尺寸大小和位置
NSRect rect;
rect.origin.x = 12;
rect.origin.y = 14;
rect.size.width = 12;
rect.size.height = 15;
//快速创建方法
rect = CGRectMake(12, 12, 12, 12);
rect = NSMakeRect(11, 11, 11, 11);
//转化成字符串打印出来
NSString* str5 = NSStringFromRect(rect);
NSLog(@
"rect is <a href="
mailto:%@",str5
" rel="
external nofollow
">%@"
,str5</a>);
|
最后此篇关于Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析的文章就讲到这里了,如果你想了解更多关于Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
如果案例 1:range1 是 (5,10) 并且 range2 是 (8,0) 它应该返回 true。情况 2:range1 是 (5,10) 并且 range2 是 (5,4) 它应该返回 tru
示例代码: import XCTest func == (lhs: NSRange, rhs: NSRange) -> Bool { return lhs.location == rhs.lo
我正在尝试实现 Easy Game Center link但我得到这个错误: Cannot convert value of type 'NSRange' (aka 'NSRange') to exp
我试图在一个字符串中查找多个字符串的 NSRange。 在下面的代码中,我使用 String.range(of: String, options: , Range) 方法找到 Range,并转换为 N
我在使用 NSRange 时遇到问题。这是我的代码: NSRange range = [[[NSHTTPCookie requestHeaderFieldsWithCookies:[[NSHTTPCo
我看了一段关于 ios7 编程的视频,看到了下面的一段代码。 我真的不能理解变量范围在这里是如何工作的。 我们创建了一个 NSrange 变量范围并且从不给它赋值,所以我认为 &range 指针应该返
我的 NSRange 有一个问题,导致我的应用程序在 textview 为空时崩溃。我使用的是自定义键盘,上面有一个退格键,它在此处调用此代码... if ([self.myChart isFirst
我正在开发一个应用程序,它接受一种名为“泰米尔语”的语言的输入。因此,为了找到字符串中任何特定字符的范围,我使用了以下代码。 var range = originalWord.rangeOfStrin
我的设备 (iPhone iOS 4.3) 上有奇怪的 NSRange 行为。此代码在设备和模拟器上有不同的行为。 for (Location *location in locationArray)
我写了一个在地址簿中搜索人的方法,我希望即使调用方法[someAdressBook searchName:@"joh"];也能找到“john bigs”;. 我的方法适用于全名,但我在部分名称中遇到问
我编写了一种方法,通过向它发送该词的 NSString 来突出显示段落中的词,在我遇到这种情况之前,它一直运行良好: 当我有这段文字时: Their mother has tried dressing
我遇到了这种奇怪的效果,在 rangeOfString 上调用 location 会返回一个非常大的值,而它不应该... 我的代码是这样的: NSRange range = [string range
这个问题在这里已经有了答案: What does NSMakeRange(i, 1) mean? (2 个答案) 关闭 6 年前。 我正在使用带有属性字符串的 NSRange,但我不完全理解文本的哪
NSRange 变量是否可能包含多个范围?像这样的东西: var multipleRanges: NSRange = [NSMakeRange(0, 2), NSMakeRange(10, 1),
我有一个字符串: He said "hello mate" yesterday. 我想获取从第一个引文到最后一个引文的 NSRange。所以我尝试了这样的事情: NSRange openingRang
我正在努力尝试生成一个有效的 NSRange,它似乎不应该这么复杂,所以我猜我使用了错误的方法。这是我正在尝试做的事情: 我有一个字符串,其中包含一些 unicode 字符: "The quick b
我有一个返回 NSRange 的方法。当我从类外部调用此方法时,出现编译错误。 NSRange tmpRange; tmpRange = [phrase rangeInString:searchStr
我有一个从 http GET 返回的大字符串,我正在尝试确定它是否有特定的文本片段(请原谅我的错误) 我的问题是:我可以/应该使用 NSRange 来确定这段文本是否存在吗? NSRange te
这是我的代码: regex.enumerateMatchesInString(parsingMemo.string, options: NSMatchingOptions(rawValue: 0),
这是我的代码:我正在尝试格式化我的文本 NSMutableAttributedString(),但它似乎总是超出范围。 Terminating app due to uncaught exceptio
我是一名优秀的程序员,十分优秀!