作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
为了存储在集合类中,将基于 CoreGraphics 结构的值(例如 CGRect
、CGPoint
等)存储到适当的对象中的最佳做法是什么?
您可以使用 NSValue
:
NSMutableArray *values = [NSMutableArray array];
CGRect rect = CGRectMake(0, 0, 100, 100);
NSValue *value = [NSValue valueWithCGRect:rect];
[values addObject:value];
CGRect rectValue = [values[0] CGRectValue];
或NSString
:
NSMutableArray *values = [NSMutableArray array];
CGRect rect = CGRectMake(0, 0, 100, 100);
NSString *string = NSStringFromCGRect(rect);
[values addObject:string];
CGRect rectValue = CGRectFromString(string);
只是想知道是否有我遗漏的东西,并且两者之间存在优势。
最佳答案
第一种方法更“规范”,因为它占用的内存更小,并且不需要太多 CPU 来进行转换。也没有可能由于转换为十进制和返回十进制而导致精度损失:struct
中的 float 以其 native 格式存储。
公平地说,这两种方法之间的差异可以忽略不计,除非您需要处理数以万计的对象。
关于iphone - 将 CG 结构序列化为适当对象的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13392023/
这段代码在 Java 中的等价物是什么?我放了一部分,我对 I/O 部分感兴趣: int fd = open(FILE_NAME, O_WRONLY); int ret = 0; if (fd =
我正在尝试将维度为 d1,d2,d3 的张量 M[a1,a2,a3] reshape 为维度为 d2, d1*d3 的矩阵 M[a2,a1*a3]。我试过 M.reshape(d2,d1*d3) 但是
我是一名优秀的程序员,十分优秀!