ios — Использование подкласса Objective-C ++ UIView в UIViewController

Добрый день,

В настоящее время я начал работать над реализацией живой камеры в виде таблицы … Голубой блок на изображении — это место, где будет появляться камера …

введите описание изображения здесь

Я использую Foscam и Hikvision Camera SDK, и я получил его для работы на Foscam …

Однако я застрял на Hikvision из-за небольшой проблемы, которую мне нужно преодолеть …

Мой основной класс для этого табличного представления — это UIViewController (из-за пользовательского макета), реализованный в Objective-C (то есть .m для реализации) (назовите это CamerasVC.m).

Hikvision, однако, имеет SDK Objective-C ++, который заставил меня иметь реализацию .mm … Когда я пытаюсь реализовать подкласс Hikvision (назовите его HikvisionCameraPreview.mm) в CamerasVC, я получаю много ошибок, относящихся к Objective -C ++ против Objective-C в библиотеке Hikvision …

Код Используется, чтобы попробовать это в CamerasVC.m:

#import "HikvisionCameraPreview.h"#import "HikvisionCameraPreview.h"
@interface CamerasVC ()
@end

@implementation CamerasVC

//code omitted

- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {
//code omitted
if ([[((ObjectCameras*)[tableData objectAtIndex:indexPath.row]).processName uppercaseString] isEqual:[@"HikVision" uppercaseString]])
{
//HIKVISION - this causes much errors
HikvisionCameraPreview *thisMiniView = [[HikvisionCameraPreview alloc]initWithFrame:vidView.frame];
[thisMiniView setSelectedCamera:[tableData objectAtIndex:indexPath.row]];
[vidView addSubview:thisMiniView];
}
else
{
//FOSCAM - which is working
FosCamCameraPreview *thisMiniView = [[FosCamCameraPreview alloc]initWithFrame:vidView.frame];
[thisMiniView setSelectedCamera:[tableData objectAtIndex:indexPath.row]];
[vidView addSubview:thisMiniView];
}
}

//code omitted
@end

Мой вопрос: есть ли способ реализовать реализацию .mm в файле реализации .m?

0

Решение

Задача ещё не решена.

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

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

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