diff options
author | Morten Johan Sørvig <morten.sorvig@digia.com> | 2013-10-31 13:03:24 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-11-05 17:37:05 +0100 |
commit | fc26b053df9cbf3886c4c6efc5a678fa1f60b20f (patch) | |
tree | c5900aa00aa49a3f6371e601d5a7a97c16baf879 /src/corelib/tools | |
parent | 2eb1e28a90eaf82f4405dc65584021f16415014b (diff) |
Declare Cocoa conversion funcs in objc-mode only.
In practice, there are several ways to forward-declare
objective-c classes. Qt uses "struct objc_object",
other projects may use a plain "class". Mismatched
forward declarations will lead to compile errors,
and this is a form of header pollution.
dd5e40d9 added a workaround where Q_FORWARD_DECLARE_OBJC_CLASS
can be predefined in order to sync up the declarations.
Make forward declaration clashes less likely by
forward-declaring in objc-mode only.
Change-Id: I9f7a399d64dc88bfe05d5385b3d46b5302112aef
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Diffstat (limited to 'src/corelib/tools')
-rw-r--r-- | src/corelib/tools/qstring.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h index 2eaed65148..3140af084b 100644 --- a/src/corelib/tools/qstring.h +++ b/src/corelib/tools/qstring.h @@ -65,8 +65,10 @@ namespace std #endif #ifdef Q_OS_MAC -Q_FORWARD_DECLARE_OBJC_CLASS(NSString); Q_FORWARD_DECLARE_CF_TYPE(CFString); +# ifdef __OBJC__ +Q_FORWARD_DECLARE_OBJC_CLASS(NSString); +# endif #endif QT_BEGIN_NAMESPACE @@ -681,8 +683,10 @@ public: #if defined(Q_OS_MAC) || defined(Q_QDOC) static QString fromCFString(CFStringRef string); CFStringRef toCFString() const Q_DECL_CF_RETURNS_RETAINED; +# if defined(__OBJC__) || defined(Q_QDOC) static QString fromNSString(const NSString *string); NSString *toNSString() const Q_DECL_NS_RETURNS_AUTORELEASED; +# endif #endif // compatibility struct Null { }; |