Skip to content

Instantly share code, notes, and snippets.

@kean

kean/safe_cast.m Secret

Created July 2, 2017 06:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kean/3600ad35c818a6b28caa3e0fa026d478 to your computer and use it in GitHub Desktop.
Save kean/3600ad35c818a6b28caa3e0fa026d478 to your computer and use it in GitHub Desktop.
#define safe_cast(TYPE, object) \
({ \
TYPE *dyn_cast_object = (TYPE*)(object); \
[dyn_cast_object isKindOfClass:[TYPE class]] ? dyn_cast_object : nil; \
})
// USAGE:
entity.ID = safe_cast(NSString, data[@"uid"]);
entity.firstName = safe_cast(NSString, data[@"first_name"]);
entity.lastName = safe_cast(NSString, data[@"last_name"]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment