Nonnull区域设置(Audited Regions) 如果需要每个属性或每个方法都去指定nonnull和nullable,是一件非常繁琐的事.苹果为了减轻我们的工作量,专门提供了两个宏:NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END. 在 #define NS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin") #define NS_ASSUME_NONNULL_END  …
Nonnull区域设置(Audited Regions) 如果需要每个属性或每个方法都去指定nonnull和nullable,是一件非常繁琐的事.苹果为了减轻我们的工作量,专门提供了两个宏:NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END.在这两个宏之间的代码,所有简单指针对象都被假定为nonnull,因此我们只需要去指定那些nullable的指针.如下代码所示: NS_ASSUME_NONNULL_BEGIN @interface TestNullab…
NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END 在.h文件中,可以看到这两个宏,翻看定义,这两个宏的代码是 #define NS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin") #define NS_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end") 知识普及: 说到这两个宏就需要引申出Swift…
来自: http://www.cnblogs.com/dsxniubility/p/4757760.html iOS警告收录及科学快速的消除方法     前言:现在你维护的项目有多少警告?看着几百条警告觉得心里烦么?你真的觉得警告又不是错误可以完全不管么? 如果你也被这些问题困惑,可以和我一起进行下面的操作.其实大部分的警告都是很好改的,把自己整个项目的警告撸一遍应该也就耗费半小时的时间,一次麻烦带来之后的清净这样不好么? 本文分为三个部分:1.简单粗暴的消除警告. 2.详细科学的消除警告.(包…
Contents OverView Static Analyzer Localizability Instance Cleanup Nullablility Runtime Issue View Debugging Enhancements Enhancements Debug Workflow Memory Graph Debugging How to use .memgraph file Sanitizer Address Sanitizers ( ASan ) Thread Sanitiz…
iOS警告收录及科学快速的消除方法     前言:现在你维护的项目有多少警告?看着几百条警告觉得心里烦么?你真的觉得警告又不是错误可以完全不管么? 如果你也被这些问题困惑,可以和我一起进行下面的操作.其实大部分的警告都是很好改的,把自己整个项目的警告撸一遍应该也就耗费半小时的时间,一次麻烦带来之后的清净这样不好么? 本文分为三个部分:1.简单粗暴的消除警告. 2.详细科学的消除警告.(包括警告收录)  3.添加警告. 如果你不是在董铂然博客园看到本文,请点击查看原文. 一.简单粗暴的消除警告 警…
Contents OverView Static Analyzer Localizability Instance Cleanup Nullablility Runtime Issue View Debugging Enhancements Enhancements Debug Workflow Memory Graph Debugging How to use .memgraph file Sanitizer Address Sanitizers ( ASan ) Thread Sanitiz…
http://www.cocoachina.com/ios/20150914/13287.html 作者:董铂然 授权本站转载. 前言:现在你维护的项目有多少警告?看着几百条警告觉得心里烦么?你真的觉得警告又不是错误可以完全不管么? 如果你也被这些问题困惑,可以和我一起进行下面的操作.其实大部分的警告都是很好改的,把自己整个项目的警告撸一遍应该也就耗费半小时的时间,一次麻烦带来之后的清净这样不好么? 本文分为三个部分:1.简单粗暴的消除警告. 2.详细科学的消除警告.(包括警告收录)  3.添加…
01 - nil Nil NULL NSNull kCFNull  的区别 参考:http://www.jianshu.com/p/3aaefb3bcf73 02 - __bridge,__bridge_transfer,__bridge_retained 各自用法 参考:http://www.cnblogs.com/zzltjnh/p/3885012.html 03 - NS_ASSUME_NONNULL_BEGIN 跟 NS_ASSUME_NONNULL_END 参考:http://mobi…
1.nonnull:字面意思就能知道:不能为空(用来修饰属性,或者方法的参数,方法的返回值) 代码: //三种使用方式都可以 @property (nonatomic, copy, nonnull) NSString *name; @property (nonatomic, copy) NSString * _Nonnull name; @property (nonatomic, copy) NSString * __nonnull name; //补充(不适用于assign属性,因为它是专门用…
最近在用Xcode 6.3写代码,一些涉及到对象的代码会报如下编译器警告: 1 Pointer is missing a nullability type specifier (__nonnull or __nullable) 于是google了一下,发现这是Xcode 6.3的一个新特性,即nullability annotations. Nullability Annotations 我们都知道在swift中,可以使用!和?来表示一个对象是optional的还是non-optional,如v…
1.用来修饰属性,或者方法的参数,方法的返回值 /** nullable:表示可以传空 */ //@property (nonatomic, strong, nullable) NSString *name; //@property (nonatomic, strong) NSString * __nullable name; //@property (nonatomic, strong) NSString * _Nullable name; /** nonnull: non:非  null :…
当我们定义某个属性的时候  如果当前使用的编译器版本比较高(6.3+)的话经常会遇到这样一个警告: 而且奇怪的是在某些文件中定义这个属性是没有任何警告的 但是在某些文件中定义同样的属性就会报错: 其实这是由于Swift的加入引起的问题: 我们都知道在swift中,可以使用!和?来表示一个对象是optional的还是non-optional,如view?和view!.而在Objective-C中则没有这一区分,view即可表示这个对象是optional,也可表示是non-optioanl.这样就会…
iOS 开发中总会用到各种缓存,YYCache或许是你最好的选择.性能上有优势,用法也很简单.作者ibireme曾经对比过同类轮子:http://blog.ibireme.com/2015/10/26/yycache/ 1.简单架构图 2.YYCache.h方法分析 @interface YYCache : NSObject // 读取当前数据库名称 @property (copy, readonly) NSString *name; // memoryCache内存缓存,diskCache文件…
最近在使用Swift的过程中,感觉到苹果公司为了迎合Swift,在Objective-C中添加了许多关键字.这些关键字一般用来用来修饰属性,或者方法的参数以及方法的返回值等等.而在以前的Objective-C开发中我们可能并不会去关注这样的一些关键字.尽管iOS10就要出了,但出于更深入了解两种语言的目的,我总结了一些Objective-C的新关键字. 新关键字的出现总是有其意义的,而iOS9的这些关键字可以很清晰的看出苹果公司推出的意义: 1.迎合Swift 因为Objective-C是一个弱…
前言 这里主要介绍一下Xcode10 版本主要更新的内容. 随着iOS12的发布,Xcode10已经可以从Mac App Store下载. Xcode10包含了iOS12.watchOS 5.macOS10.14以及tvOS 12的SDK.另外,开发者可以从Xcode中看到当前Deployment Target最低为iOS8,所以后续开发过程中个人觉得可以忽略iOS8之前的一些特性. 要想安装Xcode10,mac系统版本必须是macOS 10.13.6或者更高.这里对主要的一些变更做一些介绍(…
这段时间因为工作需要,阅读了YYModel这个开源框架,至于它能做什么,最直白的讲述就是JSON与Model之间的相互转化. 源代码在Github,大家可以自行git clone或者download. 接下来,笔者主要分析阅读源代码而引出的各种问题与知识点,不足之处请大家指正. NS_ASSUME_NONNULL_BEGIN & NS_ASSUME_NONNULL_END 这组宏是成对使用的,不得不说我们自己写代码的时候使用的很少,以至于遗漏这个知识点,现在我们就来看看这两个宏会引出什么问题.…
这里主要介绍一下Xcode10 版本主要更新的内容.随着iOS12的发布,Xcode10已经可以从Mac App Store下载.Xcode10包含了iOS12.watchOS 5.macOS10.14以及tvOS 12的SDK.另外,开发者可以从Xcode中看到当前Deployment Target最低为iOS8,所以后续开发过程中个人觉得可以忽略iOS8之前的一些特性.要想安装Xcode10,mac系统版本必须是macOS 10.13.6或者更高.这里对主要的一些变更做一些介绍(并非所有).…
1.ld: warning: directory not found for option 去掉警告的方法 工程老是提示ld: warning: directory not found for option:xxxxxx 这种提示,通常是由于添加了第三方SDK,但是后来改了个名字或者去掉了SDK,但是在 Build Settings----->Search Paths----->Library Search Paths 中仍然没有删除掉对应的路径, 所以需要到Library Search Pa…
1. UNAVAILABLE_ATTRIBUTE __attribute__((unavailable)) - (instancetype)init UNAVAILABLE_ATTRIBUTE; 告诉编译器该方法不可用,如果强行调用编译器会提示错误.比如某个类在构造的时候不想直接通过init来初始化,只能通过特定的初始化方法()比如单例,就可以将init方法标记为unavailable; 效果如下: 调用了会有警告 2. NS_ASSUME_NONNULL_BEGIN ,  NS_ASSUME_…
总结一些interface声明时的规范,相关宏的介绍,定义方法时有用的修饰符,编写注释的规范,最终写出一个合格的头文件. 1.读写权限 1.1实例变量的@public,@protected,@private关键字 1.2属性的readonly,readwrite关键字 2.前向声明 3.只暴露必要的接口和实现 3.1不要暴露任何只在类内部使用的私有方法 3.2不要在头文件里声明类内部遵循的protocol 4.nullability说明 5.定义枚举 5.1 NS_ENUM 5.2 NS_OPT…
总结一些interface声明时的规范,相关宏的介绍,定义方法时有用的修饰符,编写注释的规范,最终写出一个合格的头文件. 1.读写权限 1.1实例变量的@public,@protected,@private关键字 1.2属性的readonly,readwrite关键字 2.前向声明 3.只暴露必要的接口和实现 3.1不要暴露任何只在类内部使用的私有方法 3.2不要在头文件里声明类内部遵循的protocol 4.nullability说明 5.定义枚举 5.1 NS_ENUM 5.2 NS_OPT…
1.NS_ASSUME_NONNULL_BEGIN && NS_ASSUME_NONNULL_END 在Swift中存在Option类型,也就是使用?和!声明的变量.但是OC里面没有这个特征,因为在XCODE6.3之后出现新的关键词定义用于OC转SWIFT时候可以区分到底是什么类型 __nullable && ___nonnull __nullable指代对象可以为NULL或者为NIL__nonnull指代对象不能为null当我们不遵循这一规则时,编译器就会给出警告. 我们…
前言 这里主要介绍一下Xcode10 版本主要更新的内容.随着iOS12的发布,Xcode10已经可以从Mac App Store下载.Xcode10包含了iOS12.watchOS 5.macOS10.14以及tvOS 12的SDK.另外,开发者可以从Xcode中看到当前Deployment Target最低为iOS8,所以后续开发过程中个人觉得可以忽略iOS8之前的一些特性.要想安装Xcode10,mac系统版本必须是macOS 10.13.6或者更高.这里对主要的一些变更做一些介绍(并非所…
一:如何去学习?都去学习什么? 1:学习优秀项目的设计思想,多问几个为什么,为什么要这么设计,这么设计的好处是什么,还能不能在优化 ,如何应用到自己的项目中 2:学习优秀项目的代码风格,代码的封装设计思想,为什么要这么设计,这么设计的好处是什么,还能不能在优化 ,如何应用到自己的项目中,每行代码都要用心去写,每一行代码都要力求使最简洁的 3:学习别人遇到问题是如何分析问题,解决问题的方法是什么 4:遇到新东西应该如何去学习:1:先研究要学习的东西作用是什么 ,有什么好处  2:如何使用:具体的语…
当我们定义某个属性的时候  如果当前使用的编译器版本比较高(6.3+)的话经常会遇到这样一个警告:warning:Pointer is missing a nullability type specifier (__nonnull or __nullable) 苹果在Xcode 6.3引入了一个Objective-C的新特性:nullability annotations.这一新特性的核心是两个新的类型注释:__nullable和__nonnull.从字面上我们可以猜到,__nullable表示…
/* nullable:1.怎么使用(语法) 2.什么时候使用(作用) nullable作用:可能为空 nullable 语法1 @property (nonatomic, strong, nullable) NSString *name; nullable 语法2 * 关键字 变量名 @property (nonatomic, strong) NSString * _Nullable name; nullable 语法3 @property (nonatomic, strong) NSStri…
在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash: true }) // 添加指纹 .match('*.js', { optimizer: fis.plugin('uglify-js') }) // js压缩 .match('*.css', { optimizer: fis.plugin('clean-css') }) // css压缩 .mat…
午休完上班后,同事说测试站点访问接口出现400 Bad Request  Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上服务器进行测试查看,打开nginx与ugwsi日志与配置,发现后端服务日志记录正常,而测试站点的访问日志有7百多M(才运行两三天没几个访问,几M的话才是正常现象),在浏览器里直接访问后端服务接口也正常没有问题(我们的服务器软件架构是微服务架构,将很多模块分拆后分别部署,前端是一个纯HTML站点,通过…
好记性不如烂笔头,记录一下. 我是在淘宝买的拓实N87,Kali可以识别,还行. 操作系统:Kali 开始吧. 查看一下网卡的接口.命令如下 airmon-ng 可以看出接口名称是wlan0mon. 接下来开启无线网卡的监听模式,命令如下 airmon-ng start wlan0mon #接口名称是什么这里就写什么 already enabled for 这是因为我已经开启了,背景可看出. 查看周围的wifi网络,命令如下 airodump-ng wlan0mon 列出来之后就按Ctrl+C停…