Ios 从使用SizeWithatAttributes创建的NSValue获取值

Ios 从使用SizeWithatAttributes创建的NSValue获取值,ios,objective-c,nsvalue,Ios,Objective C,Nsvalue,我有一个从NSDictionary返回的NSValue。NSValue是使用SizeWithatAttributes创建的。 我想知道如何将NSValue恢复为一个值,以便使用它创建标签大小 我从中计算出标签的大小 betweensLabelSize = [betweensString sizeWithAttributes: @{ NSFontAttributeName: [UIFont systemFontOfSize:14.5f]

我有一个从NSDictionary返回的NSValue。NSValue是使用SizeWithatAttributes创建的。 我想知道如何将NSValue恢复为一个值,以便使用它创建标签大小

我从中计算出标签的大小

betweensLabelSize = [betweensString sizeWithAttributes: @{
                      NSFontAttributeName: [UIFont systemFontOfSize:14.5f]
                }];
我将其作为NSValue放入NSDictionary,然后像这样检索

NSValue *tempSize = [currAxisDictionary objectForKey:@"betweensLabelSize"];
返回这个值

NSSize: {64.278503, 86.4925}

为了清楚起见,您大概是使用
+[NSValue-valueWithCGSize:][/code>创建了
NSValue
-sizeWithAttributes:
没有创建
NSValue
;它返回一个
CGSize
,您将其包装在一个
NSValue

无论如何,您可以通过调用对象上的
-CGSizeValue
NSValue
对象中获取
CGSizeValue

CGSize size = [tempSize CGSizeValue];

请尝试以下代码以访问大小值:-

NSValue *val=[mut objectForKey:@"betweensLabelSize"];
CGSize sz=val.CGSizeValue;

好的,谢谢你的回复,我现在正在研究它,但不是100%确定如何使用CGSizeValue。我已经更新了我的答案,说明如何使用
CGSizeValue
方法从
NSValue
指向的
NSValue
对象中获取
CGSizeValue
。谢谢。我以前从未使用过CGSizeValue请说明否决投票的原因。这将更正答案。抱歉,您的答案中的所有内容都不正确。OP从字典中获取
NSValue
tempSize
的行很好。它不返回
CGSize
,而是返回
NSValue
。您建议的解决方案将崩溃。OP的目标是从
NSValue
中提取
CGSize
值。有关执行此操作的简单方法,请参阅文档中的
NSValue
NSValue
没有名为
sizeValue
的属性。也许你的意思是使用
CGSizeValue
方法。对,那只是我的意思