# import warnings # warnings.filterwarnings("ignore")
一直对Javascript中的this都有一种似是而非的感觉,今天突然感觉豁然开朗,特此记录一下。 咱们先看个栗子: <!...我们在元素car_key上面绑定了click事件,认为在car的类中嵌套绑定click事件就可以让这个dom元素访问car的this上下文。这种方式看起来很合理,但是不幸的是它并不工作。...在Javascript中,this关键字总是指向正执行的作用域的所有者。 请大家仔细揣摩上面那句话。...我们通常会把this赋值给一个局部的自由变量(比如that,_this,self,me等,这个在许多的框架里面都有体现)来避开作用域带来的问题。这里使用局部变量来重写之前的方法: <!...,绑定事件的时候遇到的坑,那时候只知道这么写,不知道怎么回事,今天突然感觉豁然开朗。
接上文《微信中通过页面(H5)直接打开本地app的解决方案》已经把iOS搞定并且已经正常能跑了,突然就再也用不了了......问题描述 测试告诉我,如果从微信打开App之后,点击App右上角的应用网址之后,iOS通用链接就费了,在也用不了了,如图: ?...原因分析 因为你点击右上角的网址之后,默认就把通用链接禁用了,需要在Safari中恢复一下,这是iOS本身的机制。 解决方案 1.在微信里面点击右上角“...”...,在Safari中打开; 2.往下拉,看到最上面的右上角有一个“打开”的按钮,点击“打开”之后,以后就好了,如图: ? 之后问题就解决了。
Xcode8.0中引入了文档注释警告,虽然是件好事,可是各种三方库炸出了一大堆警告: 如下图: image.png 三方库出现的注释警告 解决方法: 在Bulid Settings -> Documentation...我们可以发现,在Warings列表下面有很多警告开关,我们可以根据需要选择打开或关闭。
1.首先,用everything搜索名为newc++file.cpp的文件。 2.然后选择这个文件,打开路径。 3.在文件资源管理器中将其拖动到桌面,点击继续。...(因为编辑这个文件需要较高的权限,所以一般需要这样操作) 4将文件进行编辑,输入#define _CRT_SECUER_NO_WARNINGS,CTRL+S,保存。 5.将文件拖回原来的文件夹中。
前言 在我们的项目中,通常使用了大量的第三方代码,这些代码可能很复杂,我们不敢改动他们,可是作者已经停止更新了,当sdk升级或者是编译器升级后,这些遗留的代码可能会出现许许多多的警告,那么我们有没有办法去掉这些烦人的警告...,不然一个工程几百个警告,你看着怎么都不爽吧.我们怎么去掉警告呢 关闭工程中指定 类型的警告 工程的target有一个 Other Warning Flags ?...在里面添加排除类型 在警告窗口,某个警告上,我们右击,显示出右键菜单,选择其中的 Reveal in Log ? ?...则会显示语句,注意到其中 [-Wshorten-64-to-32],在这个括号中的就是 这种警告的类型 -W是前缀,这个前缀表示的是 打开这种类型的警告 如果我们是要关闭某种类型的警告的话, 要将...常用的屏蔽类型 -Wshorten-64-to-32 -> -Wno-shorten-64-to-32 -Wimplicit-retain-self -> -Wno-implicit-retain-self
一.SQLite的使用 采用SQLite数据库来存储数据。SQLite作为一中小型数据库,应用ios中,跟前三种保存方式相比,相对比较复杂一些。还是一步步来吧!...第一步:导入头文件 需要添加SQLite相关的库以及头文件:在项目文件的Build Phases下,找到Link Binary Library(ies),添加libsqlite3.0.dylib(libsqlite3....dylib与前者的区别暂时不知,两者应该差不多);在项目文件中头文件或者源文件中添加头文件#import "/usr/include/sqlite3.h" 第二步:开始使用SQLite: 1.打开数据库...所以要想正确从数据库中取出中文,需要用NSString来接收从数据库取出的字符串。...二.FMDB的使用 github地址是https://github.com/ccgus/fmdb // 继承 # pod 'FMDB/SQLCipher' 1.FMDB的创建: NSString
其内部通过函数memmove将栈中的block的内容拷贝到了堆中,并使isa指向了_NSConcreteMallocBlock。...block主要的一些学问就出在栈中block向堆中block的转移过程中了。...,在Block的内存存储在堆中时,如果在Block中引用了外面的对象,会对所引用的对象进行一次retain操作,即使在Block自身调用了release操作之后,Block也不会对所引用的对象进行一次release...,在Block的内存存储在堆中时,如果在Block中引用了外面的对象,会对所引用的对象进行一次retain操作,为了不对所引用的对象进行一次retain操作,可以在对象的前面使用__block来修饰 -...在Block的内存存储在堆中时,如果在Block中引用了外面的对象,会对所引用的对象进行强引用,但是在Block被释放时会自动去掉对该对象的强引用,所以不会造成内存泄漏 - (void)viewDidLoad
概念 子类可以直接复用父类中的成员 子类继承父类所有方法的声明和实现 非私有的实例变量以及协议 继承时要在.h中声明一下 继承具有单根性和传递性 继承的根类:大多都继承自 NSObject 类,所以在定义一个类时...,减少代码冗余 OC中一个类可以继承另一个类 被继承的类称为父类或超类(基类) 继承的类称为子类或派生类 子类可以直接拥有父类中所有允许子类继承的属性和方法 继承关系是可以传递的,子类除了可以调用父类的方法...,也可以调用父类的父类的方法,也就是说继承可以确保某个父类型之下的所有类都会有父类型所持有的全部方法 子类可以有自己的成员变量、属性和方法 单一继承性,OC不支持多继承 继承中方法调用的流程: 首先到子类去找...适用继承的场合 父类只是给子类提供服务,并不涉及子类的业务逻辑 层级关系明显,功能划分清晰,父类和子类各做各的。...父类的所有变化,都需要在子类中体现,也就是说此时耦合已经成为需求 我们不能脱离cocoa框架开发,所以我们可以继承cocoa的类,以达到快速开发的目的,但是如果没有特殊原因我们写的代码要控制在继承链不超过两层
demo str = 0x109768080, copyStr = 0x109768080, mcopyStr = 0x600002ca52c0 结论: 1、copy和mutableCopy拷贝出来的对象中的内容和以前内容一致...= 0x60000397a370, copyStr = 0xc464b5846da8a473, mcopyStr = 0x60000397a880 结论: 1、copy和mutableCopy拷贝出来的对象中的内容和以前内容一致...2、可变的字符串通过copy操作,生成新的对象 3、可变的字符串通过mutableCopy操作,生成新的可变对象 copy的用途 property中使用的copy、strong修饰的区别 strong...log: 0x60000002cce0--iPhone--999 0x6000000371c0--iPhone--999 注:在- (id)copyWithZone:(NSZone *)zone方法中,...因为指针可能实际指向的是PersonModel的子类。这种情况下,通过调用[self class],就可以返回正确的类的类型对象。
获取当前的时间 NSDate *date = [NSDate date]; NSLog(@"%@",date);//Thu Sep 13 16:16:13 2017 在当前时间上再加5秒...*date1 = [date dateByAddingTimeInterval:5]; NSLog(@"%@",date1);//Thu Sep 13 16:16:23 2017 获取当前所处的时区...//获取系统的 NSTimeZone *systemZone = [NSTimeZone systemTimeZone]; //获取本地的 NSTimeZone *localZone...= [NSTimeZone localTimeZone]; 获取当前时区和指定时间的时间差 NSInteger seconds = [systemZone secondsFromGMTForDate:
NSFileManager NSFileManager是用来管理文件系统管理的 它可以用来操作常见文件夹 NSFileManager常用方法 获取NSFileManager NSFileManager...fileExistsAtPath:@"/Users/soso/Desktop/demo1/NSFileManager/string.txt"]; 判断一个文件是否存在,且是否是一个文件夹 //该方法的返回值是说明传入的路径对应的文件或文件夹是否存在...//第二个参数是用于保存判断的结果,如果是一个目录,那么就是赋值为YES,若不是就是NO BOOL dir = NO; BOOL flag = [file fileExistsAtPath:@"/Users...,是否自动创建不存在的文件夹,如果是YES,要在该路径下创建Text,若路径中没有NSFileManager这个文件夹,系统会自动创建,若为NO,则不会创建成功 attributes:创建出来为文件夹的属性...error:是否创建成功 注意:该方法只能用于创建文件夹,不能用于创建文件,路径最后的test就是新创建的文件夹 */ BOOL flag = [file createDirectoryAtPath:
iOS中的蓝牙 概述 iOS中提供了4个框架用于实现蓝牙连接 1.GameKit.framework(用法简单) 只能用于iOS设备之间的同个应用内连接,多用于游戏(eg.拳皇,棋牌类),从iOS7开始过期...2.MultipeerConnectivity.framework(代替1) 只能用于iOS设备之间的连接,从iOS7开始引入,主要用于非联网状态下,通过wifi或者蓝牙进行文件共享(仅限于沙盒的文件...可用于第三方蓝牙设备交互,但是蓝牙设备必须经过苹果MFi认证(国内很少) 4.CoreBluetooth.framework(时下热门) 可用于第三方蓝牙设备交互,必须要支持蓝牙4.0 硬件至少是4s,系统至少是iOS6...蓝牙4.0以低功耗著称,一般也叫BLE(Bluetooth Low Energy) 目前应用比较多的案例:运动手环,嵌入式设备,智能家居 设计到的系统/框架 HealthKit/物联网HomeKit/
什么是Category 在OC中,扩展一个类的方式有两种:继承与分类 可以在不修改原来类的基础上,为这个类扩充一些方法 一个庞大的类可以分模块开发 Category的格式 通过Category给某类添加方法...Class-continuation类型的Category 它必须定义在其所接续的那个类的实现文件中 此分类可以声明属性,且此分类没有特定的是现实文件,其中方法都定义在主实现文件中 一般存放不需要对外公开的属性...在开发中,类的实现文件特别大,难于管理与维护,因此经常使用分类机制把类的实现代码划分成易于管理的小块,以便单独检视 #import @interface...因为Category中的@property,只会生成setter/getter的方法声明,不会生成实现及私有的成员变量(在.m文件(Class-continuation)中的分类可以声明属性,同时也可以生成...Xcode会有警告.png 运行程序会崩溃 运行程序会崩溃.png 如果分类中有和原类中同名的方法,程序只会调用分类里的方法,如果多个分类中都有和原类中同名的方法,程序只会由编译器决定,编译器最后一个执行的方法来响应
Protocol基本概念 类似于java的接口interface,接口就是一堆方法的声明,没有实现,在OC中接口是由一个叫做协议的Protocol来实现 Protocol 语法格式 Protocol的定义...Protocol只有声明,没有实现 Category和Protocol都可以声明方法,不能声明属性 Protocol注意事项 Protocol可以用@property形式声明属性,只不过在Protocol中声明的属性...Person @synthesize sportType=_sportType; - (void)readSportType{ NSLog(@"%@",_sportType); } @end 上面方法中主要用到了...,它是一个基协议 NSObject协议中声明最基本的方法(description、retain、release等等) 每个新协议都遵循NSObject #import <Foundation/Foundation.h...app是否是符合协议的app,如果app没有遵循协议就会报警告 p.app = app; //判断app是否有实现协议内容 if([p.app respondsToSelector:@selector
什么是多态 多态一般都要跟继承结合起来说,其本质是子类通过覆盖或重载父类的方法,来使得对同一类对象同一方法的调用产生不同的结果。...这里需要辨析的地方在:同一类对象指的是继承层级再上一层的对象,更加泛化。...程序中的多态:父类指针指向子类对象 多态的原理 动态绑定 动态类型能使程序直到执行时才确定对象的真实类型 动态类型绑定能使程序直到执行时才确定要对那个对象调用的方法 多态条件 有继承关系 子类重写父类方法...父类指针指向子类对象 程序中的表现 父类指针指向不同子类对象的时候,通过父类指针调用被重写的方法的时候,会执行该指针指向的那个对象的方法 应用场景 提高了代码的扩展性 多态优点 多态的主要好处是简化了编程接口...,他允许在类和类之间重用一些习惯性的命名,而不用为每一个新加的函数命名一个新名字,这样,编程接口就是一些抽象的行为集合,从而和实现接口的类区分开来 多态也使得代码可以分散在不同的对象中而不用试图在一个函数中考虑到所有可能的对象
https://blog.csdn.net/u010105969/article/details/66478819 在iOS开发中有时会有一些动画的需求,本篇博客我们说一下动画效果。...本篇博客中的动画是动画中的一种--转场动画(CATransition)。 1.为导航控制器添加动画。...在一般的开发中在一个控制器push到下一个控制器的时候苹果会有一个默认的动画即下一个控制器平移过来将上一个控制器覆盖,大多数的应用也使用了苹果给出的默认动画效果。...push的时候就会有不一样的动画效果了。...这是一个立方体的效果。 二. 为切换视图添加动画 有时我们在切换两个视图的时候也需要添加动画,实际动画还是添加在了图层上了。切换的两个视图是添加在同一个视图控制器的view上的。
iOS 中的事件响应者主要分为两类,分别为UIResponder及UIGestureRecognizer,其中UIControl是一种比较特殊的UIResponder,所以本文将事件响应者分为以下三种类型进行讨论...苹果回复[2] 在hitTest函数中拿到的 UIEvent 对象,其allTouches属性为空,等到下文所提到的发送事件时,在sendEvent函数中拿到的 UIEvent 对象,其allTouches...适用于同一个View中创建多个UIGestureRecognizer,要调整优先级的情况。 例:单击手势中调用此方法,参数是双击手势,判断双击失败后才会响应单击。...相关链接 由手势与 UIControl 冲突引发的「事件处理全家桶」探索[4] iOS 事件(UITouch、UIControl、UIGestureRecognizer)传递机制[5] iOS | 事件传递及响应链...blob/master/iOS/Event%20Handling%20Guide%20for%20iOS/Event%20Handling%20Guide%20for%20iOS.pdf [2]苹果回复
其实,我本可以更早一些来记录学习iOS的这些事儿,以前都是被各种学校项目缠身,没有时间更没有太多精力来梳理自己的学习经历。...现在这一段时间算是悠闲一点,上午可以多睡一会儿,下午溜达溜达,剩下的时间就可以认真地写一写我和iOS的事。...首先声明一下,我不是一个技术大咖,我学iOS也不是很好,我写这些文章单纯是为了记录我学习iOS的方法和心得体会。...在这个文集中我不以时间为序去编排,我更多的采用插叙或倒叙。因为我早在2013年就开始学习iOS开发了,从那时到现在,iOS更新迭代了好多版本,可以说三年前iOS的知识体系都或多或少的有些改变。...写这一篇文章最主要的原因是我迷茫了,我去应聘iOS开发工程师的时候,感觉我学的好多都没有用到,感觉到自己的认识很肤浅,学习得很不扎实,内心那种自卑感难以排遣,借此机会好好提升自己,有一句话叫做“不想当将军的不是好士兵
Android 的动画体系中,存在一类由 TransitionManager. beginDelayedTransition 管理的动画.这个方法,很特殊.执行此方法后,其后续的 UI 变化,不会立即作用到视图上...至少在我看来,这种设定很新颖.写法也很自然.除此之外,它能批量执行多个 UI 属性值变化的特性,也让人眼前一亮. iOS 动画,用的最多的也最顺手的是 animateWithDuration, 总感觉它有点...Delayed Transition 的感觉,应该也可以实现类似的执行批量动画的效果.以前,大都是在 Block 里面写某一个视图,某一个属性的变化后的值.那加入里面,同时写多个视图的多个属性变化的值...Scene 设定,也会特别,让我对动画的理解又进了一层.Scene 中,存储的是视图的状态视图,而不是一个图片形式的截图.所以,基于两个 Scene,可以做到节点级别的动画切换....Android 中的Scenne,会在 id 相同的节点间加动画效果.如此,也就能解决了我一直以来的一个困惑: 基于图片, 为什么有些 App 可以实现那么复杂精确的动画效果?
领取专属 10元无门槛券
手把手带您无忧上云