Objetivo C Al ejecutar testings: Clase definida sin especificar una class base

No tengo idea de lo que está sucediendo, ya que soy bastante nuevo en el objective c e IOS dev.

Cuando bash ejecutar mis testings, utilizando el marco de testing pnetworkingeterminado, obtengo el siguiente error:

..../Pods/Expecta/src/matchers/EXPMatchers+beCloseTo.m:4:1: Class 'EXPFixCategoriesBugEXPMatcher_beCloseToWithinMatcher' defined without specifying a base class 

El siguiente código genera el problema (pero no es mío, creo que es un file de una de las bibliotecas que estoy usando a través de los pods):

 #import "EXPMatchers+beCloseTo.h" #import "EXPMatcherHelpers.h" EXPMatcherImplementationBegin(_beCloseToWithin, (id expected, id within)) { prerequisite(^BOOL{ return [actual isKindOfClass:[NSNumber class]] && [expected isKindOfClass:[NSNumber class]] && ([within isKindOfClass:[NSNumber class]] || (within == nil)); }); match(^BOOL{ double actualValue = [actual doubleValue]; double expectedValue = [expected doubleValue]; if (within != nil) { double withinValue = [within doubleValue]; double lowerBound = expectedValue - withinValue; double upperBound = expectedValue + withinValue; return (actualValue >= lowerBound) && (actualValue <= upperBound); } else { double diff = fabs(actualValue - expectedValue); actualValue = fabs(actualValue); expectedValue = fabs(expectedValue); double largest = (expectedValue > actualValue) ? expectedValue : actualValue; return (diff <= largest * FLT_EPSILON); } }); failureMessageForTo(^NSString *{ if (within) { return [NSString stringWithFormat:@"expected %@ to be close to %@ within %@", EXPDescribeObject(actual), EXPDescribeObject(expected), EXPDescribeObject(within)]; } else { return [NSString stringWithFormat:@"expected %@ to be close to %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; } }); failureMessageForNotTo(^NSString *{ if (within) { return [NSString stringWithFormat:@"expected %@ not to be close to %@ within %@", EXPDescribeObject(actual), EXPDescribeObject(expected), EXPDescribeObject(within)]; } else { return [NSString stringWithFormat:@"expected %@ not to be close to %@", EXPDescribeObject(actual), EXPDescribeObject(expected)]; } }); } EXPMatcherImplementationEnd 

Mis files POD se ve de la siguiente manera:

 platform :ios, 6.0 pod 'RestKit', '~> 0.20.0rc' # Include optional Testing and Search components pod 'RestKit/Testing', '~> 0.20.0rc' pod 'RestKit/Search', '~> 0.20.0rc' target :MTPROJTESTS do pod 'Expecta', '~> 0.2.3' # expecta matchers # pod 'Specta', '~> 0.1.11' # specta bdd framework end 

NUEVO ERROR después de actualizar los pods de cocoa y EXPECTA: ld: library not found for -lPods-test clang: error: linker command failed with exit code 1 (use -v to see invocation)

Error:

 Ld /Users/AUSER/Library/Developer/Xcode/DerivedData/MYIOSPROJProject-cmxbzcbzjfbvgncspsalqnjvlova/Build/Products/Debug-iphonesimulator/MYIOSPROJProjectTests.xctest/MYIOSPROJProjectTests normal i386 cd /Users/AUSER/Documents/Dev/MYIOSPROJProject/MYIOSPROJProject setenv IPHONEOS_DEPLOYMENT_TARGET 7.0 setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -bundle -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk -L/Users/AUSER/Library/Developer/Xcode/DerivedData/MYIOSPROJProject-cmxbzcbzjfbvgncspsalqnjvlova/Build/Products/Debug-iphonesimulator -F/Users/AUSER/Library/Developer/Xcode/DerivedData/MYIOSPROJProject-cmxbzcbzjfbvgncspsalqnjvlova/Build/Products/Debug-iphonesimulator -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/Developer/Library/Frameworks -F/Applications/Xcode.app/Contents/Developer/Library/Frameworks -F/Applications/Xcode.app/Contents/Developer/Library/Frameworks -filelist /Users/AUSER/Library/Developer/Xcode/DerivedData/MYIOSPROJProject-cmxbzcbzjfbvgncspsalqnjvlova/Build/Intermediates/MYIOSPROJProject.build/Debug-iphonesimulator/MYIOSPROJProjectTests.build/Objects-normal/i386/MYIOSPROJProjectTests.LinkFileList -bundle_loader /Users/AUSER/Library/Developer/Xcode/DerivedData/MYIOSPROJProject-cmxbzcbzjfbvgncspsalqnjvlova/Build/Products/Debug-iphonesimulator/MYIOSPROJProject.app/MYIOSPROJProject -Xlinker -objc_abi_version -Xlinker 2 -ObjC -framework CFNetwork -framework CoreData -framework CoreGraphics -framework Foundation -framework MobileCoreServices -framework Security -framework SystemConfiguration -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=7.0 -framework XCTest -framework UIKit -framework Foundation -lPods-test -lPods-MYIOSPROJProjectTests -Xlinker -dependency_info -Xlinker /Users/AUSER/Library/Developer/Xcode/DerivedData/MYIOSPROJProject-cmxbzcbzjfbvgncspsalqnjvlova/Build/Intermediates/MYIOSPROJProject.build/Debug-iphonesimulator/MYIOSPROJProjectTests.build/Objects-normal/i386/MYIOSPROJProjectTests_dependency_info.dat -o /Users/AUSER/Library/Developer/Xcode/DerivedData/MYIOSPROJProject-cmxbzcbzjfbvgncspsalqnjvlova/Build/Products/Debug-iphonesimulator/MYIOSPROJProjectTests.xctest/MYIOSPROJProjectTests 

Espero que alguien tenga una idea 🙂

Con respecto al nuevo error del linker: A Xcode le gusta agregar un nuevo objective de compilation para la testing, así que asegúrese de que todos los files apropiados (por ejemplo, sus files fuente .m, sus bibliotecas estáticas, sus frameworks) estén configurados para includese en el objective de generación de testing . Puede hacer esto seleccionando el file en Project Navigator y mirando la sección "Membresía de destino" en el panel Inspector de files; asegúrese de que el recuadro esté marcado para el objective de creación de testing. Además, en la configuration de su proyecto, puede seleccionar el objective de compilation de testing e ir a Fases de compilation y mirar "Vincular binary con bibliotecas" para asegurarse de que las bibliotecas apropiadas están vinculadas.

Suena como que la class base EXPFixCategoriesBugEXPMatcher_beCloseToWithinMatcher está en el encabezado del prefijo para su proyecto de aplicación, pero no se importa en el file .h de EXPFixCategoriesBugEXPMatcher_beCloseToWithinMatcher . Por lo general, debe importar la class base en la parte superior del file de interfaz de su class:

 #import "YourBaseClassHere.h" @interface EXPFixCategoriesBugEXPMatcher_beCloseToWithinMatcher : YourBaseClassHere // The rest of your class here @end