iOS学习记录

181 阅读1分钟

1、__builtin_available:

@avalibale 语法,同步判断当前iOS系统是否满足需求。

if (@available(iOS 11, *)) { // >= 11
    DLog(@"XXX1");
} else if (@available(iOS 10, *)) { //>= 10
    DLog(@"XXX2");
} else { // < 10
    DLog(@"XXX3");
}

针对runtime 或者 c/c++ 方法中里面,也有对应判断系统版本方法,相似 @avalibale 语法__builtin_available 去判断。

if (__builtin_available(iOS 11, *)) {
    _collectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
} else {
    self.automaticallyAdjustsScrollViewInsets = NO;
}

2、移除所有子视图:

[[self.contentView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];

3、invertedSet过滤字符串:

NSCharacterSet *characterSet = [[NSCharacterSet characterSetWithCharactersInString:@"!*'\"();:@&=+$,/?%#[]% "] invertedSet];
NSString *urlStr = @"https://!*'www.baidu.com";
NSURL *url = [NSURL URLWithString:urlStr];
NSString *h5 = [url.absoluteString stringByAddingPercentEncodingWithAllowedCharacters:characterSet];
NSLog(@"h5 = %@", h5);

h5 = https%3A%2F%2F%21%2A%27www.baidu.com

4、判断当前时间是否在某个时间段:

if ([currentDate compare:model.start] == NSOrderedDescending && [currentDate compare:model.end] == NSOrderedAscending) {

}