1、hasSuffix 和 hasPrefix
-
hasSuffix:(nonnull NSString *)
返回一个布尔值表示字符串是否以指定的后缀结束。
如果一致返回true,如果不一致返回false -
hasPrefix:(nonnull NSString *)
返回一个布尔值表示字符串是否以指定的前缀开始。
如果一致返回true,如果不一致返回false
例如:
// 表示 url 是否是以 http:// 为请求头的开始的,如果是,则返回 true
BOOL openURL = [url hasPrefix:@"http://"];
2、respondstoselector 的作用
respondsToSelector
用来判断某一个方法时候实现(下面的代码意思:如果baseAPIdidStartRequest
这个方法实现了,那么就去调用,防止出现异常)
if ([self.delegate respondsToSelector:@selector(baseAPIdidStartRequest:)]) {
[self.delegate baseAPIdidStartRequest:self];
}
3、isKindOfClass 和 isMemberOfClass
-
isKindOfClass:__unsafe_unretained Class
用来判断时候是某个类或其子类的实例(成员) -
isMemberOfClass:__unsafe_unretained Class
用来判断是否是某个类的实例(成员)
例如:
- (void)testIsKindOfClass {
Class1 *c1 = [Class1 new];
if ([c1 isKindOfClass: [NSObject class]]) {
NSLog(@"c1 is a kind of NSObject.");
}
if ([c1 isMemberOfClass:[Class1 class]]) {
NSLog(@"c1 is Member of Class1 !");
}
if (![c1 isMemberOfClass:[NSObject class]]) {
NSLog(@"c1 is't Member of NSObject !");
}
}
打印结果:
2018-08-13 16:05:47.408663+0800 WebView[2407:1903238] c1 is a kind of NSObject.
2018-08-13 16:05:47.408772+0800 WebView[2407:1903238] c1 is Member of Class1 !
2018-08-13 16:05:47.408806+0800 WebView[2407:1903238] c1 is't Member of NSObject !
4、iOS访问相册、相机等服务权限设置
在更新iOS11之后,访问通讯录、相册等需要在info.plist中加入访问描述,不然如果项目涉及到这些权限的地方就会直接crash掉,报错信息如下:
打开info.plist添加权限描述许可键值对:

5、php 魔术常量,在iOS同样可以使用
// 函数名
NSLog(@"%s", __FUNCTION__);
// 程序运行时的时间
NSLog(@"%s", __TIME__);
// 当前代码所在的行数
NSLog(@"%d", __LINE__);
// 当前文件的名字(及位置?)
NSLog(@"%s", __FILE__);
输出结果为
2018-08-19 19:06:26.586 demo[4783:196913] -[MainViewController viewDidLoad]
2018-08-19 19:06:26.586 demo[4783:196913] 19:06:19
2018-08-19 19:06:26.586 demo[4783:196913] 40
2018-08-19 19:06:26.586 demo[4783:196913] /Users/GrandSu/Desktop/demo/demo/Controller/MainViewController.m
网友评论