iOS开发攻城狮。
今天在看WebViewJavascriptBridge源码的时候发现一个神奇的宏,在定义较长字符串时很实用。 举个例子,将一段js代码存到一个变量,为了便于阅读需要加入换行,需要在每行结束加上\。
博客链接 写在前面 先说点废话,从事iOS开发以来,一直有一个目标,拥有一个自己的APP上架App Store,并且登上苹果推荐榜单,这可能是大多数iOSer的梦想。
由于项目是Hybrid的平台,有第三方人员需要在上面开发H5应用,但是release包不能调试H5,只有debug报可以调试,但是项目源码不能交给第三方,在google搜索了下,发现一篇霜神的文章,讲的是debug包可以拷贝到其它机器运行,于是实践了一波。
本文分析使用代码是AFNetworking 3.2.1 最近使用Instruments中的Leaks分析项目内存泄露,发现了一个AFNetworking的循环引用。
官方文档解析 官方文档:https://developer.apple.com/documentation/uikit/uidocumentpickerviewcontroller?language=objc UIDocumentPickerViewController有四种模式: Import an external document:用户选择一个外部文档,文档选择器拷贝该文档到应用沙盒,不会修改源文档。
消息转发流程图 15277558865032.jpg 如果类接收到无法处理的消息,会触发消息转发机制,一共有三个步骤,接受者在每一步中均有机会处理消息。
本文涉及到的CPU架构为arm64,其它架构大同小异。 源码来自苹果开源-runtime。 Objective-C中采用引用计数机制来管理内存,在MRC时代,需要我们手动retain和release,在苹果引入ARC后大部分时间我们不用再关心引用计数问题。
UIWebView没有提供设置UserAgent的接口,但是有一个办法可以间接的设置。 NSDictionary* dict = [[NSDictionary alloc] initWithObjectsAndKeys:value, @"UserAge...
本文设计到的源码是基于Cordova 4.2.1版本,Cordova官网。 CDVViewController CDVViewController是Cordova最主要的类,它把所有模块整合在一起,直接初始化一个它的实例就可以使用。
最近在拜读Draveness大佬的一篇文章自动释放池的前世今生 ---- 深入解析 autoreleasepool,看到文中给读者留了一个问题: 我到现在也不是很清楚为什么要根据当前页的不同状态 kill 掉不同 child 的页面。
背景 公司项目使用的Cordova混合开发的,有一个模块以前用H5实现的,新版本用原生来实现,于是需要迁移数据。H5使用的Local Storage存的数据,原生要拿到数据有两种方案: 用WebView执行js方法来读取数据; 找到Local Storage存储路径,直接读取; 方案一实现起来比较简单,但是会存在一些问题,需要多开一个Webview来迁移数据,而且这个过程不好控制,不是最优解,本文讨论的是方案二。
背景 最近遇到一个Bug,在用AFNetworking下载文件的时候莫名其妙的失败了,跟了一下发现一个小坑,记录一下防止以后再掉进去。 iOS和Linux的文件名的长度限制相同都是255个字符!!! 问题根源是文件名超度超过了255个字符,AFNe...
photo-1490633874781-1c63cc424610.jpeg 背景 最近有一个需求,需要手动的去缓存cookie,然后启动APP的时候设置缓存过的cookie,项目网络框架用的是Afnetworking。
pexels-photo-892769.jpeg 本文主要讲imageNamed与imageWithContentsOfFile的差异,需要注意的点,与实战中遇到的坑。
前言 最近需要实现一个新需求,用iOS 10出的CallKit实现将APP的通讯录的信息同步到系统中,可以不把人员信息加到通讯录中,实现来电号码识别。
什么是 UDID? UDID 是由子母和数字组成的 40 个字符串的序号,用来区别每一个唯一的 iOS 设备。 例如: 37f2f993bae681636e30e74b04d6b8955ba36f29 获取UDID 方法一 手机连接电脑,打开iTunes,即可查看。
gofmt 大部分的格式问题可以通过gofmt解决,gofmt自动格式化代码,保证所有的go代码与官方推荐的格式保持一致,于是所有格式有关问题,都以gofmt的结果为准。