Несколько определений символа – Swift C++IOS

Программируем под IOS
Ответить
Anonymous
 Несколько определений символа – Swift C++

Сообщение Anonymous »

Я использую возможность быстрого взаимодействия для использования кода C++ в своем пакете Swift. И код работает нормально в XCode 15, но после обновления моего Xcode до 16 я столкнулся с некоторыми проблемами.
Класс перечисления в C++:

Код: Выделить всё

#ifndef ResolutionType_hpp
#define ResolutionType_hpp

#include 

enum class ResolutionType
{
ORIGINAL = 9991,
CUSTOM = 9992,
_24P = 9993,
_36P = 9994,
_48P = 9995,
_72P = 9996,
_90P = 9997,
_120P = 9998,
_144P = 9999,
_240P = 10000,
_320P = 10001,
_360P = 10002,
_480P = 10003,
_576P = 10004,
_640P = 10005,
_720P = 10006,
_1080P = 10007,
_1440P = 10008,
_2160P = 10009,
_4320P = 10010,

};

#endif /* ResolutionType_hpp */
Мой код на C++:

Код: Выделить всё

std::vector VideoCutterManager::getSupportedResolutionList(int index){

std::vector list;
return list;

}
И мой вызов Swift:

Код: Выделить всё

public func getSupportedResolutionList(index : Int) -> [ResolutionType] {

let supportedList = manager.getSupportedResolutionList(Int32(index))
return supportedList.map { ResolutionType(rawValue: $0.rawValue)! }
}
Всякий раз, когда я вызываю эту функцию из своего быстрого кода, я получаю сообщение об ошибке:

Код: Выделить всё

Multiple definitions of symbol '$sSo1soiySiSo3stdO3__1O0036___wrap_iterUnsafePointer__DgGIinaBdaV_AGtFTO'

Function type mismatch, declared as '@convention(thin) (__ObjC.std.__1.__wrap_iter, __ObjC.std.__1.__wrap_iter) -> Swift.Int' but used as '@convention(thin) (__ObjC.std.__1.__wrap_iter, __ObjC.std.__1.__wrap_iter) -> Swift.Int'
Я не могу найти проблему.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ol-swift-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»