2012-01-30 2 views
4

왜 이것이 오류입니까? 다음 언젠가에서 Obj C 블록의 설명.

float (^isFloat)(float) = ^(float d) 
{ 
    return d*2.0; 
}; 

float (^isFloat)(float) = ^(float d) 
{ 
    return d; 
}; 

나를 이해 도와주세요, 오류가 무료입니다.

+2

어떤 오류 메시지가보고됩니까? –

답변

9

첫 번째 블록의 반환 유형이 잘못 되었기 때문에.

float을 반환하도록 블록을 정의했지만 floatdouble을 곱했습니다. 당신이 d * 2.0f로 변경하면 모든 것이 잘 작동합니다.

+5

추가 할 항목 : 부동 소수점 상수는 달리 지정하지 않는 한 복식입니다. – Wevah

+0

아름다움. 마지막에 f를 추가해야한다는 것을 알기가 매우 좋습니다. 고마워. – Futur

+0

질문이 하나 더 있습니다 : "d * 2.0f"로 언급 할 때 컴파일러는 무엇을 의미합니까? 마지막에 f와 함께 타입 캐스팅의 종류? – Futur