ios developer tiny share-20161017
来源:互联网 发布:mysql的触发器 编辑:程序博客网 时间:2024/05/21 22:27
今天讲Objective-C的NSValue,它可以代表更复杂的Objective-C的类型,比如NSRange,结构体类型。
Represent Other Values Using Instances of the NSValue Class
The NSNumber class is itself a subclass of the basic NSValue class, which provides an object wrapper around a single value or data item. In addition to the basic C scalar types, NSValue can also be used to represent pointers and structures.
The NSValue class offers various factory methods to create a value with a given standard structure, which makes it easy to create an instance to represent, for example, an NSRange, like the example from earlier in the chapter:
NSString *mainString = @"This is a long string";NSRange substringRange = [mainString rangeOfString:@"long"];NSValue *rangeValue = [NSValue valueWithRange:substringRange];
It’s also possible to create NSValue objects to represent custom structures. If you have a particular need to use a C structure (rather than an Objective-C object) to store information, like this:
typedef struct { int i; float f;} MyIntegerFloatStruct;
you can create an NSValue instance by providing a pointer to the structure as well as an encoded Objective-C type. The @encode() compiler directive is used to create the correct Objective-C type, like this:
struct MyIntegerFloatStruct aStruct;aStruct.i = 42;aStruct.f = 3.14;NSValue *structValue = [NSValue value:&aStruct withObjCType:@encode(MyIntegerFloatStruct)];
The standard C reference operator (&) is used to provide the address of aStruct for the value parameter.
0 0
- ios developer tiny share-20161017
- ios developer tiny share-20160628
- ios developer tiny share-20160629
- ios developer tiny share-20160630
- ios developer tiny share-20160701
- ios developer tiny share-20160704
- ios developer tiny share-20160705
- ios developer tiny share-20160706
- ios developer tiny share-20160707
- ios developer tiny share-20160708
- ios developer tiny share-20160711
- ios developer tiny share-20160712
- ios developer tiny share-20160713
- ios developer tiny share-20160714
- ios developer tiny share-20160715
- ios developer tiny share-20160718
- ios developer tiny share-20160719
- ios developer tiny share-20160720
- 2016 年最受欢迎的编程语言是什么?
- 从零开始学C++之对象的使用(二):四种对象生存期和作用域、static 用法总结
- 御泥坊的购物车单选、全选,改变数量
- 用labview实现有趣字符串 图画
- Matlab 入门级函数<一>
- ios developer tiny share-20161017
- 9 javascript JSON
- 欢迎使用CSDN-markdown编辑器
- 动态数组申请————简单版
- XML是什么,它可以做什么?——XML详解
- 快捷键XML管理和事件管理小结(实例)
- Android学习之——SpannableString和TextView的使用及研究
- Curiously Recurring Template Pattern
- calico在kubernetes中的策略