vida real pelicula infierno demonios casa objective-c

objective-c - real - casa demonios pelicula



¿Dónde declaras una constante en el objetivo c? (4)

Declárelo en un archivo fuente y tenga un enlace externo (usando la palabra clave extern ) para usarlo en todos los demás archivos fuente.

const double EARTH_RADIUS=6353; una constante en un archivo de encabezado const double EARTH_RADIUS=6353; eso se importa a varios otros encabezados y recibí un error del enlazador.

Ld /Users/Teguh/Library/Developer/Xcode/DerivedData/BadgerNew-bjopcgcgsjkcvcevflfbvsjwfgnu/Build/Products/Debug-iphonesimulator/BadgerNew.app/BadgerNew normal i386 cd /Users/Teguh/Dropbox/badgers/BadgerNew setenv MACOSX_DEPLOYMENT_TARGET 10.6 setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-g++-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L/Users/Teguh/Library/Developer/Xcode/DerivedData/BadgerNew-bjopcgcgsjkcvcevflfbvsjwfgnu/Build/Products/Debug-iphonesimulator -F/Users/Teguh/Library/Developer/Xcode/DerivedData/BadgerNew-bjopcgcgsjkcvcevflfbvsjwfgnu/Build/Products/Debug-iphonesimulator -filelist /Users/Teguh/Library/Developer/Xcode/DerivedData/BadgerNew-bjopcgcgsjkcvcevflfbvsjwfgnu/Build/Intermediates/BadgerNew.build/Debug-iphonesimulator/BadgerNew.build/Objects-normal/i386/BadgerNew.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -framework CoreLocation -framework UIKit -framework Foundation -framework CoreGraphics -framework CoreData -o /Users/Teguh/Library/Developer/Xcode/DerivedData/BadgerNew-bjopcgcgsjkcvcevflfbvsjwfgnu/Build/Products/Debug-iphonesimulator/BadgerNew.app/BadgerNew ld: duplicate symbol _EARTH_RADIUS in /Users/Teguh/Library/Developer/Xcode/DerivedData/BadgerNew-bjopcgcgsjkcvcevflfbvsjwfgnu/Build/Intermediates/BadgerNew.build/Debug-iphonesimulator/BadgerNew.build/Objects-normal/i386/NearbyIsiKota.o and /Users/Teguh/Library/Developer/Xcode/DerivedData/BadgerNew-bjopcgcgsjkcvcevflfbvsjwfgnu/Build/Intermediates/BadgerNew.build/Debug-iphonesimulator/BadgerNew.build/Objects-normal/i386/FrontPageofBadger.o for architecture i386 collect2: ld returned 1 exit status

Básicamente, quiero que la constante esté disponible para todas las clases en mi proyecto. ¿Dónde debería declararlo?


Hay dos maneras de lograr esto:

Primera opción: como respuestas anteriores apuntadas, en el archivo .h :

myfile.h extern const int MY_CONSTANT_VARIABLE;

y en myfile.m defínalos

myfile.m const int MY_CONSTANT_VARIABLE = 5;

2da opción- Mi favorito :

myfile.h static const int MY_CONSTANT_VARIABLE = 5 ;


La mejor práctica sería declararlo en sus archivos .h y .m. Ver Constantes en Objective-C para un conjunto muy detallado de respuestas con respecto a esta misma pregunta.


Puede declarar en el encabezado, definirlo en un archivo de código. Simplemente declararlo como

extern const double EARTH_RADIUS;

luego en un archivo .m en algún lugar (generalmente el .m para .h lo has declarado)

const double EARTH_RADIUS = 6353;