Re: Cocoa-dev Digest, Vol 16, Issue 72
Re: Cocoa-dev Digest, Vol 16, Issue 72
- Subject: Re: Cocoa-dev Digest, Vol 16, Issue 72
- From: Jens Alfke via Cocoa-dev <email@hidden>
- Date: Tue, 27 Aug 2019 11:35:43 -0700
> On Aug 26, 2019, at 6:22 PM, Turtle Creek Software <email@hidden>
> wrote:
>
> There are links between each Cocoa control class and its matching C++ control
> (which also owns a native MFC control).
> Also links between the view and our C++ controller, to load window layouts
> and set up the control links.
> A couple utility links for showing progress bars, log window, etc.
Ah, OK. Your C++ code goes higher up the stack than I thought. (It sounds like
using Qt would have been a good idea, but it's probably much too late to
rethink that now.)
My suggestion is simply to compile all your C++ code as Objective-C++. In your
project settings just tell Xcode to map the ".cpp" suffix to Objective-C++
instead of C++.
Then you can refer to Cocoa classes by their regular names in the C++ code,
just as if you were writing Objective-C. ARC will automatically manage their
reference-counting. If you have an NSButton* data member in a C++ class, the
compiler will insert retain/release when it's assigned, and will add a -release
call to your destructor. (Just make sure to initialize it to nil in its
declaration!)
This way you aren't fooling the compiler, and it can do the right thing with
reference-counts.
For x-plat compatibility, you can either #ifdef out the places those are
referred to, or conditionally declare those class names as bogus C++ classes:
#ifndef __APPLE__
namespace cocoa {
class NSButton;
class NSWindow;
…
}
#endif
—Jens
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
References: | |
| >Re: Cocoa-dev Digest, Vol 16, Issue 72 (From: Turtle Creek Software via Cocoa-dev <email@hidden>) |
| >Re: Cocoa-dev Digest, Vol 16, Issue 72 (From: Jens Alfke via Cocoa-dev <email@hidden>) |
| >Re: Cocoa-dev Digest, Vol 16, Issue 72 (From: Turtle Creek Software via Cocoa-dev <email@hidden>) |
| >Re: Cocoa-dev Digest, Vol 16, Issue 72 (From: Jens Alfke via Cocoa-dev <email@hidden>) |
| >Re: Cocoa-dev Digest, Vol 16, Issue 72 (From: Turtle Creek Software via Cocoa-dev <email@hidden>) |