2012-06-06 12 views
5

Nesne-C'ye yeni geldim ve neden bu yöntemin derlendiğini merak ediyorum, neden herkesin nedenini açıklayabilir mi?Amaç-C: BOOL yöntemine dönme yöntemi

sıfır

+2

Son satır etkilidir: 'return (BOOL) 56;'. –

+0

Bunu sorduğunuzu biliyordum. – dan

cevap

6

Objective-C A BOOL değil çünkü

-(BOOL) isEnabled{ 
    return 56; 
} 
+3

Zillan, bunun bir "YES" veya "NO" değerine dayanıyorsa kodun kırılabileceğini de unutmayın. Örneğin. 'if ([self isEnabled] == YES]' başarısız olur, eğer if ([self isEnabled]) 'çalışırsa, – Joe

+0

Evet, bu nedenle normal kodlama stili, bu sabitlere karşı mukayese etmekten kaçınır ve sadece ödev için kullanır. –

+3

Bu makaleyi gerçekten incelemelisiniz: http://weblog.bignerdranch.com/564-bools-sharp-corners/ –

0

Bu nedenle true döndürür

false === 0 === nil //Anything that is zero or nil is false 
true = !false   //Anything that is NOT zero or nil is true. 

56 olarak objektif-c bir BOOL düşünebiliriz ederiz typedef, signed char’dur. Bu tür bir 56 uyuyor olduğundan, bir literal int dolaylı dönüşüme veri kaybı yaşanmaz.

+1

Hayır öyle değil. Objective-C'deki bir BOOL, "imzalı bir char" dır. –

+0

Benim "tanımım" biraz yanıltıcıydı, değiştirdim. –

+0

Düzenlemeniz hala yanlış. –