Fixed Objective-C mode

This commit is contained in:
Phil Nash
2017-09-06 15:43:26 +01:00
parent 8d03cb4915
commit 2d37649377
5 changed files with 36 additions and 37 deletions

View File

@@ -299,17 +299,26 @@ namespace Catch {
#ifdef __OBJC__
template<>
struct StringMaker<NSString*> {
static std::string convert(NSString* nsstring);
static std::string convert(NSString * nsstring) {
if (!nsstring)
return "nil";
return std::string("@") + [nsstring UTF8String];
}
};
template<>
struct StringMaker<NSString* CATCH_ARC_STRONG> {
static std::string convert(NSString * CATCH_ARC_STRONG nsstring);
struct StringMaker<NSObject*> {
static std::string convert(NSObject* nsObject) {
return ::Catch::Detail::stringify([nsObject description]);
}
};
template<>
struct StringMaker<NSObject *> {
static std::string convert(NSObject* nsObject);
};
#endif
namespace Detail {
inline std::string stringify( NSString* nsstring ) {
return StringMaker<NSString*>::convert( nsstring );
}
} // namespace Detail
#endif // __OBJC__
} // namespace Catch