日常知识点收集

conformsToProtocol

2019-06-06  本文已影响0人  Rumbles

conformsToProtocol conformsToProtocol

conformsToProtocol:是检测一个类是不是遵从某个协议(当然协议里声明称 required 的方法必须得实现)

conformsToProtocol: 检测一个类是否实现了某个方法【未必要申明 但是必须实现】

performSelector. 调用选择器方法

    Person *per = [Person new];
    if ([per respondsToSelector:@selector(eat)]) {. ///>没有申明但是实现了
        [per performSelector:@selector(eat)];
    }

Selector Class Protocol 都可以转化为字符串

FOUNDATION_EXPORT NSString *NSStringFromSelector(SEL aSelector);
FOUNDATION_EXPORT SEL NSSelectorFromString(NSString *aSelectorName);

FOUNDATION_EXPORT NSString *NSStringFromClass(Class aClass);
FOUNDATION_EXPORT Class _Nullable NSClassFromString(NSString *aClassName);

FOUNDATION_EXPORT NSString *NSStringFromProtocol(Protocol *proto) 
FOUNDATION_EXPORT Protocol * _Nullable NSProtocolFromString(NSString *namestr) 

FOUNDATION_EXPORT 与 #define 都可以用来定义常量
.h文件
FOUNDATION_EXPORT  NSString *const kMyConstantString;
.m文件
 NSString *const kMyConstantString = @"hello world";


#define kMyConstantString @"Hello"

由于过多的宏定义会产生过多的二进制文件,故如果宏定义比较多,建议用FOUNDATION_EXPORT

规定字典的key值。意思是 NSString 类型的枚举

- (void)addTimer:(NSTimer *)timer forMode:(NSRunLoopMode)mode;

typedef NSString * NSRunLoopMode NS_EXTENSIBLE_STRING_ENUM;
FOUNDATION_EXPORT NSRunLoopMode const NSDefaultRunLoopMode;
FOUNDATION_EXPORT NSRunLoopMode const NSRunLoopCommonModes;

.m可能的实现
NSString *const NSDefaultRunLoopMode = @"NSRunLoopMode"
NSString *const NSRunLoopCommonModes = @"NSRunLoopCommonModes"
上一篇下一篇

猜你喜欢

热点阅读