GCD信号量semaphore控制线程并发数 GCD提供了信号semaphore来控制线程并发数,提供一下三个函数 dispatch_semaphore_create(<#long value#>) // 创建信号semaphore,value参数为任务并发同时执行时线程最大并发数 dispatch_semaphore_wait(<#dispatch_semaphore_t _Nonnull dsema#...
微信数据存储WCDB for iOS/macOS WCDB WCDB是一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持iOS, macOS。 WCDB for iOS/macOS 基本特性 易用,WCDB支持一句代码即可将数据取出并组合为object。 WINQ(WCDB语言集成查询):通过WINQ,开发者无须为了拼接SQL的字符串而写一大坨胶水代码。 ORM(Objec...
WKWebView使用过程的遇到的一些问题记录/webView结合Safari调试 WKWebView加载问题 - (nullable WKNavigation *)loadRequest:(NSURLRequest *)request; - (nullable WKNavigation *)loadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL API_AVAILABL...
UIWebView使用之JavaScriptCore UIWebView使用JavaScriptCore实现JS与OC互相调用,。它是从iOS7开始加入的,用 Objective-C 把 WebKit 的 JavaScript 引擎封装了一下,提供了简单快捷的方式与JavaScript交互。 1、简要介绍JavaScriptCore JavaScriptCore是一个iOS 7 新添加的框架,使用前需要先导入JavaScriptCore...
WKWebView使用之MessageHandler 使用WKWebView的时候,如果想要实现JS调用OC方法,除了拦截URL之外,还有一种简单的方式。那就是利用WKWebView的新特性MessageHandler来实现JS调用原生方法。 MessageHandler 是什么? WKWebView 初始化时,有一个参数叫configuration,它是WKWebViewConfiguration类型的参数,而WKWebView...
WKWebView的基本使用/拦截URL/Alert弹窗/禁止选择操作/内容字体大小控制 WKWebView是iOS 8推出,输入WebKit.framework, UIWebView属于UIKit.framework; WKWebView相对UIWebView优化了很多,特别是内存的消耗. 经测试通过UIWebView和WKWebView分别访问http:www.baidu.com,App正常启动后内存平稳在42M,点击按钮使用UIWebView加载baidu内存最高...
UIWebView的基本使用/拦截URL/禁止选中/alert弹框 UIWebView的基础使用 CGRect bouds = [[UIScreen manScreen]applicationFrame]; UIWebView* webView = [[UIWebView alloc]initWithFrame:bounds]; 属性: @property (nonatomic) BOOL scalesPageToFit; // 是...
iOS企业版app部署到自己服务器,不通过AppStore,在iOS设备上直接安装应用程序 iOS企业版app部署到服务器 .正对ios升级得ios7 以后,plist文件必须放到 https得服务器上了,http不可以用了 部署具体过程 准备文件:plist文件,ipa安装包,html下载页面 .plist参照模板如下 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PU...
CoreData数据库加密 iOS App 如果使用sqllite数据库存储,就存在数据库安全问题,可以采用一定方式对数据库文件加密或内容进行加密. 以下是一些加密的思路和加密方式 1.对数据库文件进行加密 2.对存储的内容进行加密,比如对某些重要字段进行加密,加密方式可以采用AES ,Base64,MD5等,其中MD5加密不可逆. 以下内容采用SQLCipher对CoreData数据库内容进行加密...
开发常用小知识点记录 过时属性和方法提示 DEPRECATED_ATTRIBUTE 标识属性或方法过时 @property (assign, nonatomic) BOOL isLoading DEPRECATED_ATTRIBUTE; - (instancetype)initFromURLWithString:(NSString *)urlString completion:(JSO...
NSObject中类方法load/initialize加载时机和作用 方法调用时机 相同点: 程序启动都只会执行仅且一次,再次怎么调用使用类都不会执行了. 不同点: 方法调用时机不一样. > + load程序启动类加载时就会调用,不管该类是否有使用或有Import都会执行 > + initialize 程序启动后,只有类使用时都会触发,包括调用类的类方法或对象方法; 包括该类的创建对象,创建对象在调用类方法alloc, 比如:[Drvi...
GCD dispatch_source基本使用,创建GCD定时器与NSTimer的区别 可以使用GCD创建定时器 创建定时器: dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYP...
JS与OC相互调用的基本使用 JS调用原生OC篇 方式一 第一种方式是用JS发起一个假的URL请求,然后利用UIWebView的代理方法拦截这次请求,然后再做相应的处理。我写了一个简单的HTML网页和一个btn点击事件用来与原生OC交互,HTML代码如下: <html> <header> <meta http-equiv="Content-Type"...
Runloop运行循环的理解 runloop运行流程图 系统默认注册了5个Mode: kCFRunLoopDefaultMode:App的默认Mode,通常主线程是在这个Mode下运行 UITrackingRunLoopMode:界面跟踪 Mode,用于 ScrollView 追踪触摸滑动,保证界面滑动时不受其他 Mode 影响 UIInitialization...
CoreData版本升级数据迁移 CoreData数据库结构升级和数据迁移 app中使用了CoreData,并且在下一个版本中有实体变动,比如实体新增字段、修改字段等改动,那么app在覆盖安装时就要进行数据库迁移,否则app就会crash 数据库迁移步骤 1.选中.xcdatamodeld文件,然后点击Xcode菜单editor->Add Model Version比如取名:Model.xc...
多线程GCD dispatch_once_t/dispatch_barrier_<a>sync/dispatch_group_t dispatch_once 在dispatch_once block中的代码在程序启动到程序退回只会执行一次,如:不管for循环多少,只会一次打印 for (int i = 0; i<10; i++) { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ ...
CocoaPods安装,iOS程序第三方框架的依赖管理 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm。随着 iOS 开发者的增多,业界也出现了为 iOS 程序提供依赖管理的工具,它的名字叫做:CocoaPods。 CocoaPods 的安装和使用介绍 安装 如果你的 gem 太老,可能也会有问题,可以尝试用如下命令升级 gem: sudo gem update -...
CoreData基本使用 CoreData简介 CoreData是一门功能强大的数据持久化技术,位于SQLite数据库之上,它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互。CoreData提供数据--OC对象映射关系来实现数据与对象管理,这样无需任何SQL语句就能操作他们。CoreData数据持久化框架是Cocoa API的一部分,⾸次在iOS5 版本的系统中出现,它允许按照实体-属性-值模型...