gpt4 book ai didi

iphone - 将 CG 结构序列化为适当对象的最佳实践

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:47:17 25 4
gpt4 key购买 nike

为了存储在集合类中,将基于 CoreGraphics 结构的值(例如 CGRectCGPoint 等)存储到适当的对象中的最佳做法是什么?

您可以使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com