react-native-navigation的迁移库

OCMArg.h 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * Copyright (c) 2009-2016 Erik Doernenburg and contributors
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License"); you may
  5. * not use these files except in compliance with the License. You may obtain
  6. * a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  12. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  13. * License for the specific language governing permissions and limitations
  14. * under the License.
  15. */
  16. #import <Foundation/Foundation.h>
  17. @interface OCMArg : NSObject
  18. // constraining arguments
  19. + (id)any;
  20. + (SEL)anySelector;
  21. + (void *)anyPointer;
  22. + (id __autoreleasing *)anyObjectRef;
  23. + (id)isNil;
  24. + (id)isNotNil;
  25. + (id)isEqual:(id)value;
  26. + (id)isNotEqual:(id)value;
  27. + (id)isKindOfClass:(Class)cls;
  28. + (id)checkWithSelector:(SEL)selector onObject:(id)anObject;
  29. + (id)checkWithBlock:(BOOL (^)(id obj))block;
  30. // manipulating arguments
  31. + (id *)setTo:(id)value;
  32. + (void *)setToValue:(NSValue *)value;
  33. + (id)invokeBlock;
  34. + (id)invokeBlockWithArgs:(id)first,... NS_REQUIRES_NIL_TERMINATION;
  35. + (id)defaultValue;
  36. // internal use only
  37. + (id)resolveSpecialValues:(NSValue *)value;
  38. @end
  39. #define OCMOCK_ANY [OCMArg any]
  40. #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
  41. #define OCMOCK_VALUE(variable) \
  42. ({ __typeof__(variable) __v = (variable); [NSValue value:&__v withObjCType:@encode(__typeof__(__v))]; })
  43. #else
  44. #define OCMOCK_VALUE(variable) [NSValue value:&variable withObjCType:@encode(__typeof__(variable))]
  45. #endif