5 tongwei117

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 2w+

关闭window时终止程序

关闭window时候,终止应用程序大概分为两种情况,如下/** 保证当你关闭最后一个window或者关闭应用唯一的一个window时候应用自动退出 */- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender { return YES;}// 监听方法[[NSNotific...

2019-01-17 15:22:15

iOS 去掉导航条和tabbar线条

去掉导航条底部线条[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar setShadowImage:[[UIImage a...

2018-10-17 08:59:59

TestFlight测试

内部测试:https://www.jianshu.com/p/4be185e4069c外部测试:https://www.jianshu.com/p/c6411fbe5781

2018-09-19 10:37:14

iOS 获取视频图片

/** * 截取指定时间的视频缩略图 * * @param timeBySecond 时间点,单位:s */- (UIImage *)thumbnailImageRequestWithVideoUrl:(NSURL *)videoUrl andTime:(CGFloat)timeBySecond{ AVURLAsset *urlAsset = [AVURLAsset asset...

2018-09-19 10:11:55

打开mac系统偏好设置

[[NSWorkspace sharedWorkspace] openFile:@"/System/Library/PreferencePanes/UniversalAccessPref.prefPane"];打开的是偏好设置的万能辅助的界面如果你想打开,其他的界面可以替换后面的UniversalAccessPref.prefPane。想查找其他的pane名字,可以先用[[NSWorksp...

2018-09-19 09:36:02

(设置/获取)系统声音

-(AudioDeviceID)getDefaultOutputDeviceID{ AudioDeviceID outputDeviceID = kAudioObjectUnknown; // get output device device OSStatus status = noErr; AudioObjectPropertyAddress prop...

2018-09-19 09:26:14

NSArray去重过滤

两个 NSArray去重过滤 避免大量使用for循环// 取两个数组交集的时候,可以先将NSArray 转换成 NSMutableSet,再通过取二者交集即可,但是需要注意一点是数组中的元素最好复写一下isEqual和hash方法。保证取交集后的结果是正确的 NSArray *arr = @[@"12-11", @"12-11", @"12-11", @"12-12", @"12-13"...

2018-09-18 16:20:06

判断代码在哪个队列中运行

- (void)viewDidLoad { [super viewDidLoad]; NSLog(@"%d", [self isMainQueue]); // 1 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ NSLo...

2018-09-18 14:41:17

copy 关键字

为什么要写这篇博客,面试的时候有可能会遇到这样的面试题:用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题? 首先搞懂copy十分重要;是什么 首先copy和mutableCopy是方法,是NSObject内定义的方法。还有对应的类方法copyWithZone:(struct...

2018-09-17 14:20:05

GCD dispatch_semaphore(信号量)

需求: 假设有两个空置资源,同一时间却有三个线程要去进行访问,如何处理??? 或者异步并发下载大量图片,每个下载都会开辟一个新线程,可是我们担心开辟太多线程肯定cpu吃不消,那么我们这里也可以用信号量控制一下最大开辟线程数。定义 信号量:就是一种可用来控制访问资源的数量的标识,设定了一个信号量,在线程访问之前,加上信号量的处理,则可告知系统按照我们指定的信号量数量来执行多个线程。 其...

2018-09-04 14:35:08

GCD dispatch_group

关于dispatch_group的概念以及几种场景下的使用关于dispatch_group 把一组任务提交到队列中,这些队列可以不相关,然后监听这组任务完成的事件。 最常见的几个方法:1、dispatch_group_create创建一个调度任务组2、dispatch_group_async 把一个任务异步提交到任务组里3、dispatch_group_ente...

2018-09-04 14:23:29

NavigationController

NavigationController结构图 UITabBarController和NavigationController结构类似

2018-08-08 15:33:23

mac source tree gitignore

开发使用CocoaPods 开发项目,很容易提交一些不需要的代码到仓库,在SourceTree 里添加忽略文件这块老弄错,这次专门博客一下忽略步骤如下: 在SourceTree的偏好 编辑里面添加 *~ .DS_Store *.xcuserstate *.xcworkspace xcuserdata *.lock Pods如果添加了gitignore还是不起作用,则需要把缓...

2018-08-06 15:01:09

swift KVC函数调用

// 1 定义模型属性的时候,如果是对象,通常都是可选的(- 在需要的时候创建 - 避免写构造函数,可以简化代码)// 2 使用kvc方法之前,应该调用super.init保证对象实例化完成class Person : NSObject {// name属性是可选的,在oc中很多的属性都是在需要的时候创建的// 例如:vc.view/tableviewcell.textLabel等/...

2018-07-25 10:41:05

swift重载构造函数

在使用swift重载构造函数的时候,需要注意。// 1 构造函数的目的:给自己的属性分配空间并且设置初始值// 2 调用父类构造函数之前,需要先给本类的属性设置初始值// 3 调用父类的'构造函数',给父类的属性分配空间设置初始值NSObject没有属性,只有一个成员变量'isa'// 4 如果重载了构造函数,并且没有实现父类init方法,系统不再提供init()构造函数(默认是会有...

2018-07-25 10:27:11

OC开发常用宏

// 判断机型#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)#define kSCREEN_MAX_LENGTH (MAX(kScreenWidth,...

2018-07-16 09:49:35

一次完整的http请求过程

一个完整的HTTP过程包括建立连接、数据传输、断开连接等七个步骤。 下面详细介绍一下每一步TCP建立连接 HTTP协议是基于TCP协议来实现的,因此首先就是要通过TCP三次握手与服务器端建立连接,一般HTTP默认的端口号为80;浏览器发送请求命令 在与服务器建立连接后,Web浏览器会想服务器发送请求命令浏览器发送请求头消息 在浏览器发送请求命令后,还会发送一些其它信息,最后以...

2018-05-20 09:22:07

cocoa 处理多个网络请求

场景: 在开发中很多时候在同一个界面中会有多个网络请求,而且要在这几个网络请求成功返回的时候再做下一步操作。分析一种是对个网络请求结束后统一操作,在一个界面需要同时请求多种数据。比如列表数据,广告数据等,全部请求到再一起刷新界面。多个请求顺序执行,下一个请求依赖于上一个请求的结果。这些要求对呀普通的操作是可以做到并发控制和依赖操作。但是对于网络请求这种需要时间的请求来说,...

2018-05-16 16:42:16

swift-映射添加控制器

在使用swift中tabbarcontroller的时候,使用映射去添加。Bundle扩展import Foundationextension Bundle { // 计算型属性类似于函数,没有参数,有返回值 var namespace: String { return infoDictionary?["CFBundleName"] as? String ...

2018-04-26 17:23:30

swift UICollectionView

swift创建UICollectionViewCollectionVCimport UIKitclass CollectionVC: UIViewController { // 定义block var comBack:(()->())? private var listArray = [String]() private var coll...

2018-04-12 17:06:36

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!