У меня возникают проблемы с компиляцией iPhone Unit Testing Bundle, когда код, на который он ссылается, использует CGFloats. Если я правильно помню, CGFloat - это просто макрос препроцессора, поэтому я предполагаю, что он не заменяется должным образом, но, поскольку я относительно новичок в этом каперсе iPhone, я не знаю, с чего начать искать, чтобы его исправить. Я уже сравнил значения на странице «Информация» как для целевого приложения, так и для пакета тестирования, и все они кажутся в основном одинаковыми.
Вот шаги для репликации в Xcode 3.2.1 и Xcode 3.1.4:
Создайте новый проект> Приложение на основе представления Создайте новую цель> Пакет модульного тестирования Ctrl + щелкните Цель тестирования> Получить информацию Добавьте «CoreGraphics.framework» в связанные библиотеки. Добавьте новый класс Objective-C, убедитесь, что отмечены обе цели.
// SomeClass.h
#import <Foundation/Foundation.h>
@interface SomeClass : NSObject {
}
-(CGFloat)doStuff;
@end
// SomeClass.m
#import "SomeClass.h"
@implementation SomeClass
-(CGFloat)doStuff {
return 9.9;
}
@end
Ctrl + щелчок по цели "Тесты"> "Создать тесты".
Следующие ошибки появляются в моем окне результатов сборки везде, где есть ссылка на CGFloat:
/Users/shabbyrobe/Code/Tests/StupidCGFloat/Classes/SomeClass.h:15:0 /Users/shabbyrobe/Code/Tests/StupidCGFloat/Classes/SomeClass.h:15: ошибка: ожидается ')' перед 'CGFloat'