"_OBJC_CLASS _ $ _ viewsampleViewController", на который ссылается: - PullRequest
0 голосов
/ 22 декабря 2010

я создаю контроллер представления viewsampleViewController .. И у него есть два метода setname и getname. имя моего тестового случая - newTestCase, а имя метода - testName.

#import "newTestCase.h"
#import "viewsampleViewController.h"


@implementation newTestCase

в моем методе testName,

-(void)testName{

 NSString *b=@"hello";
 v =[[viewsampleViewController alloc] init];
 STAssertNotNil(v,@"v doesnt created");
 [v setuname:@"hello"];
 NSString *a=[v getuname];

 STAssertEquals(b,a,@"error:name not equal");
 [v release];

}

-(void)setUp{
 v=[viewsampleViewController alloc];
}

-(void) tearDown{
 [v release];
}

при сборке я получил ошибку

 Ld "build/Debug-iphoneos/Unit test.octest/Unit test" normal armv6
cd /Users/anande/Documents/viewsample
setenv IPHONEOS_DEPLOYMENT_TARGET 3.1.3
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -arch armv6 -bundle -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk -L/Users/anande/Documents/viewsample/build/Debug-iphoneos -F/Users/anande/Documents/viewsample/build/Debug-iphoneos -F/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk/Developer/Library/Frameworks -filelist "/Users/anande/Documents/viewsample/build/viewsample.build/Debug-iphoneos/Unit test.build/Objects-normal/armv6/Unit test.LinkFileList" -dead_strip -framework Foundation -framework SenTestingKit -miphoneos-version-min=3.1.3 -o "/Users/anande/Documents/viewsample/build/Debug-iphoneos/Unit test.octest/Unit test"


Undefined symbols:
  "_OBJC_CLASS_$_viewsampleViewController", referenced from:
      __objc_classrefs__DATA@0 in newTestCase.o
ld: symbol(s) not found

collect2: ld returned 1 exit status

PLZ, помогите мне,

Ответы [ 5 ]

19 голосов
/ 19 июля 2012

Эта проблема компоновщика появляется из-за архитектуры и зависимости . В действительности, когда мы добавляем некоторые файлы в наш проект из некоторых других источников, тогда может не быть Точная зависимость. Так компилятор генерирует ошибку компоновщика. Я решил эту проблему, выполнив следующие шаги:

  1. Выберите цель
  2. Выбор этапов сборки
  3. Выбор источников компиляции
  4. Выберите + иконка
  5. Выберите файл .m, для которого вы получаете сообщение об ошибке, и добавьте его.
  6. Очистить сборку и запустить снова.
14 голосов
/ 22 декабря 2010

Это ошибка компоновщика, добавьте viewsampleViewController.m к вашей цели теста.Пожалуйста, начните с имен ваших классов в верхнем регистре, чтобы все стало более читабельным

2 голосов
/ 22 декабря 2010

Каким-то образом файл viewsampleViewController.m не компилируется. Убедитесь, что его часть проекта.

0 голосов
/ 13 марта 2014

Хотя добавление файлов .m вашего приложения непосредственно к цели тестирования решает проблему, оно является избыточным и ненужным.Выполните шаги, описанные здесь Two Bit Labs , чтобы заставить его работать.Подводя итог, убедитесь, что ваша…

  1. настройка сборки цели теста Bundle Loader указывает на комплект вашего приложения..
  2. Значение цели приложения Symbols Hidden by Default для сборки равно NO.
.
0 голосов
/ 11 марта 2013

У меня была такая же проблема, когда я делал некоторые изменения в источниках проекта. Все .m были изменены на .mm, и по какой-то причине в 'Link Binary With Libraries' конкретный класс, у которого были проблемы, не был добавлен туда, но был в 'Copy Bundle Resources'. После того, как я изменил, что это сработало.

Так вот что я сделал:

1) Нажмите на синюю вкладку проекта в верхнем левом углу Xcode. 2) Перейдите к опции «ЦЕЛИ». 3) Перейдите на вкладку «Фазы сборки». 4) Перейдите к «Копировать ресурсы комплекта». 5) Найдите файл реализации (.m, .mm) и, если он там есть, удалите его, нажав опцию минус (-). 6) Перейдите в «Compile Sources», нажмите «плюс» (+) и добавьте этот файл реализации. 7) Скомпилируй и нажми, брат, ты в порядке.

Надеюсь, это поможет. Приветствия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...