Ios 从使用SizeWithatAttributes创建的NSValue获取值
我有一个从NSDictionary返回的NSValue。NSValue是使用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]
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
方法。对,那只是我的意思