Ошибка компиляции при вызове метода класса .mm из кода ObjC

Я пытаюсь использовать Adobe XMP Toolkit SDK, чтобы прикрепить XMP к некоторым файлам PNG. SDK предоставляет несколько примеров, и я изменил один из них, чтобы соответствовать моим потребностям. SDK написан на C ++, поэтому пример класса, который я изменил, — это класс .mm.

Это класс:

void attachXMPToImage ( string * rdf, string imageName, string software, string softVersion, string referencia, string fecha )
{
//    if ( argc != 2 ) // 2 := command and 1 parameter
//    {
//        cout << "usage: ModifyingXMP (filename)" << endl;
//        return 0;
//    }

string filename = imageName;
string rdfFile = *rdf;

if(!SXMPMeta::Initialize())
{
cout << "Could not initialize toolkit!";
// return -1;
}

XMP_OptionBits options = 0;
#if UNIX_ENV
options |= kXMPFiles_ServerMode;
#endif
}

Я не публикую весь класс, поскольку проблема заключается в вызове этого метода из моего кода ObjC.

Этот класс имеет свой собственный заголовок, который выглядит следующим образом:

#import <Foundation/Foundation.h>

@interface XmpWriter : NSObject

+ (void)attachXMPToImage:(NSString*)rdf
imageName:(NSString*)imageName
software:(NSString*)software
softVersion:(NSString*)softVersion
referencia:(NSString*)referencia
fecha:(NSString*)fecha;

@end

Затем из одного из моих других классов я пытаюсь вызвать этот метод:

 [XmpWriter attachXMPToImage:nil
imageName:k_IMAGE_NAME
software:@"My iOS App"softVersion:@"v. 1.0"referencia:@""fecha:timeString];

но когда я пытаюсь скомпилировать, я получаю сообщение об ошибке:

Неопределенные символы для архитектуры arm64: «_OBJC_CLASS _ $ _ XmpWriter»,
ссылка от:
objc-class-ref в Myclass.o

Что я делаю неправильно?

-1

Решение

В конце я смог найти пример и решил проблему.

Проблема была в том, как я назвал метод в классе .mm. Я должен был изменить это в:

+ (void) attachXMPToImage:(NSString*)rdf imageName:(NSString*)imageName software:(NSString*)software softVersion:(NSString*)softVersion referencia:(NSString*)referencia fecha:(NSString*)fecha
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]