You can mix Objective C with C++. Just rename your source file to .mm
.
Some Foundation classes such as NSArray and NSSet are toll-free bridges to CoreFoundation objects like CFArray and CFSet. The latter is a pure C library that you can use without ObjC.
UIKit is a pure Objective-C framework. You could use UIKit with C and C++ as the Objective-C runtime is accessible from pure C functions such as objc_msgSend
, e.g.
id UIView = objc_getClass("UIView");
SEL alloc = sel_registerName("alloc");
id view = objc_msgSend(UIView, alloc);
// ...
but it is not reliable, e.g.
objc_msgSend(view, sel_registerName("setAlpha:"), 0.4);
will not do what you want.
You could isolate the UI part and write ObjC just for that part. Create a C interface between the UI and the backend, which you may use C++ or any (allowed) languages.