集成Spotlight的App可以在Spotlight中搜索App的内容,并且通过内容打开相关页面。因为接到开发任务,老大说让在App中支持Spotlight, 于是又搞了搞苹果的官方文档。...我们App中有关于宫崎骏的的内容,然后在Spotlight中搜索宫崎骏,就可以搜索到相关内容,并且可以点击打开展示相关内容。具体运行效果如下: ? ...代码描述: (1).首先定义了一个temp数组,用来存储在Spotlight中搜索的关键字,也就是Spotlight可以搜索到的App内容。...数组中的内容通过循环遍历经过一系列的步骤给Spotlight进行关联。 ...(2)在每次遍历内容数组的过程中,需要创建一个CSSearchableItemAttributeSet(属性集合),并给属性集合中的一些属性赋上值。
引言 在iOS开发中,我们常常会用到@property来声明属性,在声明属性的关键字中有一对atomic和nonatomic关键字。...不能 线程安全是指多个线程在并发执行时同时访问操作同一块内存造成数据错误或冲突,引起执行结果的不确定。...使用了atomic后只是保证了在使用这个属性的getter和setter时的线程安全,并不能保证整个对象是线程安全的。...比如一个线程循环的读数据,另一个线程循环的写数据,必然会有线程安全的问题;如果一个线程正在getter或者setter,又有另一个线程同时进行了release操作,则会发生crash 总结 atomic...只是保证了getter和setter存取方法的线程安全,并不能保证整个对象是线程安全的,因此,线程安全还要开发者自己来处理 相对nonatomic来说atomic更消耗资源且速度慢,因此,如果没有特殊的需求
UIWebViewNavigationTypeReload,用户触击重新加载的按钮。
容易混淆的内容摆放属性: 1. textAligment : 文字的水平方向的对齐方式 取值 NSTextAlignmentLeft = 0, // 左对齐 NSTextAlignmentCenter...2. contentVerticalAlignment : 内容的垂直方向的对齐方式 取值 UIControlContentVerticalAlignmentCenter = 0, // 居中对齐...UIControl本身 UIControl UIButton UITextField 3. contentHorizontalAlignment : 内容的水平方向的对齐方式 取值 UIControlContentHorizontalAlignmentCenter...UIControl本身 UIControl UIButton UITextField 4. contentMode : 内容模式(控制内容的对齐方式), 一般对UIImageView很有用 取值 /*...UIImageView的尺寸一样) UIViewContentModeScaleToFill, // 按照图片原来的宽高比进行伸缩, 伸缩至适应整个UIImageView(图片的内容不能超出UIImageView
混合内容警告 攻击者最近有个问题,因为他们的技巧只在不安全的页面有效,而浏览器默认情况下不从安全网站呈现不安全的内容。...允许加载图片 一个有趣的例外是,所有浏览器允许无限制加载并渲染不安全的图像。换句话说,如果攻击者已经在网络中嗅探,他们将能够在运行中浏览并替换图片,但这并不代表对最终用户的真正威胁。...这是很有道理的:许多网站使用 HTTP 协议从外部加载它们的图像,或更糟的情况,它们在资源中硬编码了指向本地图像的 HTTP 协议,但内容本身(html/scripts)是安全的。...有件有趣的事要记住,两个浏览器都认为伪协议(res: mhtml: file:)是不安全的,所以如果我们尝试使用这些协议加载内容,都会失败,就像普通 http 在 https 中那样。...如果你从来没有见过,请看这个技巧相关的博文,但这里的要点是:现代浏览器默认不允许“混合内容”,而且许多技巧将在 HTTPS 中失效。
概述在本文中,我们将重点分析如何绕过Firefox内容安全策略中的“Strict-Dynamic”限制。...该漏洞将绕过内容安全策略(CSP)的保护机制,而在该机制中包含一个“严格动态限制”的Script-src策略。...这一策略看起来确实足够安全,但是,如果在trusted.example.org中存在任何绕过内容安全策略的脚本,那么就仍然可以执行JavaScript。...这种绕过方式的利用可能会更为实际,特别适用于允许托管许多JavaScript文件(如CDN)的域名。这样一来,即使在白名单中,有时也很难通过内容安全策略来保障安全性。...即使在通用浏览器扩展中,如果有可以用于绕过内容安全策略的Web可访问资源,也会发生同样的情况。
Chrome 更新到84之后, 默认屏蔽不安全内容。 临时解决方法: 1: 修改网站设置,不安全内容屏蔽改为允许。
关于IOS安全这方面呢,能做的安全保护确实要比Android平台下面能做的少很多。 只要你的手机没越狱,基本上来说是比较安全的,当然如果你的手机越狱了,可能也会相应的产生一些安全方面的问题。...但是尽管这样,对IOS保护这方面来说,需求还不是很乏,所有基于IOS平台的加固产品也不是很多,目前看到几种关于IOS加固的产品也有做的比较好的。...加固:对于程序中的类名方法名,自己产生一个随机的字符串来替换这些定义的类名和方法名,但是不是所有类名,方法名都能替换的,要过滤到系统有关的函数以及类,可以参考下开源项目:https://github.com...四、加入安全SDK 现状:目前大多数IOS应用对于简单的反调试功能都没有,更别说注入检测,以及其它的一些检测了。...当然除了这些外,还有很多方面可以做加固保护的,相信大家会慢慢增加对IOS应用安全的意识,保护好自己的APP。
作者:苏子岳 或者叫“为什么PDF里拷出来的有些字会消失”, “为什么有些字体里“fi”可以连在一起”, “Fira Code是怎么做到连体符号的” ligature ligature,维基百科中文页中叫...正如字面意义上,连字就是连在一起的字,比如中文的连字是这样的: 俗话说,见字如见人。 有的专家根据特总的签名, 分析说他的狂放就如同他那一横一样不羁…… 在拉丁语系中,很多时候会用到连字这一特性。 ...比如说德语的字母 ß 最开始其实是 ss, ="en.wikipedia.org/wiki/T">拉丁字母中的 W 最开始的时候是 VV, 两个 V…, 非常神奇。...而我们熟悉的音标里的 æ 这个字母, 看起来很像连字,但其实不是连字, æ 是古英语等一系列语系里真实用到的字母。 fi与印刷体 在活字印刷盛行的时候, 人们都是用字模来印文章的。...所以为了方便、美观,有些字体直接会有 fi 连字的字模。这里不论是印刷字体的连字,还是上面手写字体的连字, 都是一样的概念,都叫 ligature。
一.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
大坝安全监测是指对大坝水雨情沉降、倾斜、渗压以及大坝形状特征有效地进行监测,及时发现潜在的安全隐患和异常情况,以便大坝管理人员能够做出科学决策,以确保大坝安全稳定运行。...大坝安全监测的主要内容1.表面位移监测:监测大坝边坡整体表面位置的变化及其变化速率(包括平面位移和垂直沉降),确定边坡整体位移变形的情况,是确定边坡稳定性重要指标之一。...3.渗流及含水量监测:监测大坝边坡内部地下水的分布情况,以及地下水对大坝的渗透作用。4.环境气象监测:监测大坝边坡所在地的水位、水温、气温、降雨量等环境状态。大坝安全监测的作用1....提高水库大坝管理效率:水库大坝安全监测能够对水库的整体情况进行数字化展示,漫途大坝安全监测模块,通过内部采购,选型,集成,调试。将系统集成商所需的功能,在出厂前进行调试完毕,打包发出。...帮助中小型水库大坝快速实现信息化、智能化对历史数据做到无纸化,为水库的防洪、调度等工作提供科学依据,为国家经济发展和人民生活提供更加安全可靠的水资源保障。
其内部通过函数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,要在该路径下创建Text,若路径中没有NSFileManager这个文件夹,系统会自动创建,若为NO,则不会创建成功 attributes:创建出来为文件夹的属性...error:是否创建成功 注意:该方法只能用于创建文件夹,不能用于创建文件,路径最后的test就是新创建的文件夹 */ BOOL flag = [file createDirectoryAtPath:...contents:文件内容data attributes:属性 */ BOOL flag3 = [file createFileAtPath:@"/Users/soso/Desktop/demo1
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)中的分类可以声明属性,同时也可以生成...,程序只会调用分类里的方法,如果多个分类中都有和原类中同名的方法,程序只会由编译器决定,编译器最后一个执行的方法来响应 调用优先级(Category->本类->父类) #import <Foundation
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 的app,如果app没有遵循协议就会报警告 p.app = app; //判断app是否有实现协议内容 if([p.app respondsToSelector:@selector
什么是多态 多态一般都要跟继承结合起来说,其本质是子类通过覆盖或重载父类的方法,来使得对同一类对象同一方法的调用产生不同的结果。...这里需要辨析的地方在:同一类对象指的是继承层级再上一层的对象,更加泛化。...程序中的多态:父类指针指向子类对象 多态的原理 动态绑定 动态类型能使程序直到执行时才确定对象的真实类型 动态类型绑定能使程序直到执行时才确定要对那个对象调用的方法 多态条件 有继承关系 子类重写父类方法...父类指针指向子类对象 程序中的表现 父类指针指向不同子类对象的时候,通过父类指针调用被重写的方法的时候,会执行该指针指向的那个对象的方法 应用场景 提高了代码的扩展性 多态优点 多态的主要好处是简化了编程接口...,他允许在类和类之间重用一些习惯性的命名,而不用为每一个新加的函数命名一个新名字,这样,编程接口就是一些抽象的行为集合,从而和实现接口的类区分开来 多态也使得代码可以分散在不同的对象中而不用试图在一个函数中考虑到所有可能的对象