2014-11-30 5 views
0

NSDictionary에서 반환 할 NSValue가 있습니다. NSValue는 크기 WithAttributes을 사용하여 만들어졌습니다. NSValue를 레이블 크기를 만드는 데 사용할 수있는 값으로 다시 가져 오는 방법을 알고 싶습니다.sizeWithAttributes를 사용하여 만든 NSValue에서 값 가져 오기

나는 내가 NSValue로 NSDictionary에이 점을 넣어이

betweensLabelSize = [betweensString sizeWithAttributes: @{ 
         NSFontAttributeName: [UIFont systemFontOfSize:14.5f] 
       }]; 

에서 계산 된 라벨의 크기를 얻을이 값을 반환 그래서

NSValue *tempSize = [currAxisDictionary objectForKey:@"betweensLabelSize"]; 

같은 PIN이

NSSize: {64.278503, 86.4925} 

도움을 주시면 감사하겠습니다.

답변

1

분명히 을 사용하여 NSValue을 만들었을 것입니다. -sizeWithAttributes:NSValue을 만들지 않았습니다. 그것은 당신이 NSValue에 싸서 CGSize를 반환했습니다. 코드 아래

CGSize size = [tempSize CGSizeValue]; 
+0

괜찮 감사 이제는 CGSizeValue를 사용하는 방법을 100 % 확신하지 못했습니다. – HurkNburkS

+0

'CGSizeValue' 메소드가'NSSite'가 가리키는'NSValue' 객체에서'CGSize'를 얻는 방법을 보여주기 위해 제 대답을 업데이트했습니다. tempSize'입니다. –

+0

그 덕분에. 나는 전에 CGSizeValue를 사용한 적이 없다. – HurkNburkS

0

시도를 크기 값에 액세스하는데 :

어쨌든, 당신은 그것을 -CGSizeValue를 호출하여 NSValue 개체의 밖으로 CGSize를 얻을 수 있습니다 - 답장을

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

downvote의 이유를 언급 해주세요. 그래서 그 답을 바로 잡을 것입니다. –

+1

죄송 합니다만 답안의 모든 내용이 잘못되었습니다. 사전에서'NSValue'' tempSize'를 얻으려는 OP의 라인은 괜찮습니다. 'CGSize'를 반환하지 않고'NSValue'를 반환합니다. 제안 된 솔루션이 중단됩니다. OP의 목표는 NSValue에서 CGSize 값을 추출하는 것입니다. 이것을 수행하는 간단한 방법은'NSValue' 문서를보십시오. – rmaddy

+0

'NSValue'에는'sizeValue'라는 속성이 없습니다. 아마도 당신은'CGSizeValue' 메서드를 사용하려고했을 것입니다. – rmaddy