关闭

iOS开发笔记之六十七——Category使用过程中的一些注意事项

******阅读完此文,大概需要10分钟****** 一、不同Category中同名方法的加载与执行顺序 1、先来看看如下的例子,针对TestClass类有两个Category分别为TestClass+A、TestClass+B,类结构如下: 而打印结果始终如下: 2、Category的方法执行原理...
阅读(121) 评论(0)

iOS开发笔记之六十六——基于Json的页面动态化方案

一、需求场景 iOS的动态化一直是工程师们不断致力的方向,尽管JSPatch等动态化方案被苹果否掉之后,类似阿里Weex、点评Picasso这种方案开始成为动态化的另一个重要方向,它们都是通过在App端实现一套JS的引擎,解析js生成Native页面的原理方式,从而达到页面动态化的目的,如果需要复杂的交互App端还需要实现js bridge,基本能够满足业务动态的需求。 二、基于Json的...
阅读(332) 评论(0)

iOS开发笔记之六十五——两种截屏方案的对比

******阅读完此文,大概需要3分钟****** 业务开发中常常需要截屏生成一张UIView的Image,我们前期就做了一个需要对UIView进行截屏的需求,iOS上截屏的方案有多种,因为我们需要控制图片的分辨率,防止图片过大,所以我们采取了两种方案对UIView进行截屏; 第一种:renderInContext方式,主要代码如下: - (UIImage *)convertViewToIm...
阅读(323) 评论(0)

iOS开发笔记之六十四——基于UIView模块化组件方案

一、方案背景 有这么一个需求,需要做一个展示信息详情页,内容可能会比较多,超过一屏,最终还需要生成一张完整的详情页截图(UIImage), 如果我们直接基于UIScrollView(UITableView)去截屏,只会生成UIScrollView的frame的size大小的图片,不能生成contentSize大小的图片,所以,我们需要基于UIView去实施截图,有人可能会问,再UIView上...
阅读(397) 评论(0)

iOS开发笔记之六十三——一个NSTimer引发内存泄漏

一、问题产生与分析 先看下产生的代码: - (void)dealloc { [self.timer invalidate]; self.timer = nil; NSLog(@"dealloc!!!!!!!"); } - (void)viewDidLoad { [super viewDidLoad]; self.timer = [NSTimer sc...
阅读(456) 评论(0)

iOS开发笔记之六十二——如何构建大型App的Crash符号化系统

一、背景 最近梳理了公司的Crash管理流程,感觉这个过程可以作为一款较大业务量App的参考流程,调研了其他,基本都是大同小异。 二、Crash文件的产生与符号化 1、符号表 符号化的3种方法,不多说,前两种不是本文讨论的,直接略过,说第三种。 每一个可执行程序都有一个build UUID来唯一标识(这个UUID不同于用户设备的那个唯一UUID,这个是标示应用的),在Xcode项目编译后...
阅读(413) 评论(0)

iOS开发笔记之六十一——Autorelease Pool的实现原理总结

一、背景 要想深入了解autorelease pool的原理,看以下两片文章即可: Using Autorelease Pool Blocks Objective-C Autorelease Pool 的实现原理 要想掌握上文中的要点,还是要废不少劲的。对于这种原理比较抽象,和实际开发编码没有直接关系的原理性的东西,常常是看一遍过一阵子很快就忘得了,为了加深印象,还是有必要系统性地...
阅读(1227) 评论(0)

iOS开发笔记之六十——OS X和iOS安全机制之二——隔离机制

隔离机制是一项很前卫且最好拥有的特性,现在已经成为苹果技术风景线中不可分割的一部分。基本思想很简单,而且也是应用程序安全性的一个基本原则,那就是不受信任的应用程序必须在一个独立的隔间(compartment)中运行,隔间实际就是一个隔离的环境,在这个环境中所有的操作都会受到限制。这个机制之前在leopard中叫seatbelt,后来就改名为sandbox(沙盒),在lion中得到了极大的改进。其中...
阅读(461) 评论(0)

iOS开发笔记之五十九——OS X和iOS安全机制之一——签名机制

一、背景 在OS X上病毒和恶意软件很少见,给大家的感觉是OS X和iOS更加安全。到底是什么原因导致的OS X更加安全呢? (1)OS X占有率较低,没有吸引足够的恶意软件开发者的注意(假设你是恶意软件开发者,正在图谋准备下一次非法勾当。你是愿意花精力真对全世界90%以上的电脑下手,还是剩下的5%的电脑呢?)。 (2)UN*X家族的OS总是坚持最小权限原则,这样可以避免用户默认...
阅读(346) 评论(0)

iOS开发笔记之五十八——ARC下的block类型分析

这里有篇唐巧的博客:http://blog.devtang.com/2013/07/28/a-look-inside-blocks/,根据文中介绍,block一共存在以下三种类型: 1、_NSConcreteGlobalBlock 全局的静态 block,不会访问任何外部变量; 2、_NSConcreteStackBlock 保存在栈中的 block,当函数返回时会被销毁; 3、_NSC...
阅读(468) 评论(0)

iOS开发笔记之五十七——__weak与__strong是如何解决循环引用的

当我们写一个block时,如果你的block涉及被self持有以及需要访问self的成员时,循环引用问题由此产生。解决的办法也很简单,其中利用__weak与__strong是常见的手段,类似代码如下: __weak typeof(self) weakSelf = self; self.block = ^{ __strong typeof(weakSelf) strongSelf =...
阅读(1202) 评论(1)

Python开发笔记之二——Python网页爬虫与画图

我们经常需要拉一下业务的某一个指标数据汇总给老板看,在我们内部监控平台上,因为系统平台的人没有暴露api给业务层,之前想汇总统计数据基本都是手动一天一天的去采集,每次采集都是一个机械重复蛋疼的过程,这次狠下心来,把这个过程脚本化了。为了防止脚本丢失,特意在这里做个笔记记录一下。 这个过程其实就是简单的两步:数据的采集和画图 1、数据的采集 因为这些数据是按天产生的,数据的URL地址只有日期不...
阅读(610) 评论(0)

iOS开发笔记之五十六——Geofencing地理围栏技术介绍

我们境外业务有这样的一个需求场景,当用户走进某一商户附近时,我们可以给用户发送和此商户相关的推送消息,从而为业务引流。针对这种需求,我们启动了这个技术调研,android的方案大致是不断获取用户当前位置经纬度,并上报到后端,后端经过计算判断用户是否已经进入提前划好的区域,如果进入,则发送远程通知给用户即可。由于iOS和android的后台能力不同,所以实现此功能的方案iOS和android不同。如...
阅读(1564) 评论(1)

文件相似度比对工具的设计与实现

一、背景与目标 我们业务维护了两个代码仓库,两端的代码很多都是一个平台先开发好,几乎直接copy到另一个仓库。于是产生了一个技术需求,实现这两个仓库代码复用。在技术预研阶段,需要统计早先copy的代码文件有多少,提前预估双端代码的大概可复用文件比例。早先我是利用Beyond Compare 手动遍历文件,依据“肉眼”去对比的,花了大概一天的时间,而且估计的数据比较粗略。考虑到这个工作以后...
阅读(1470) 评论(0)

iOS开发笔记之五十五——关于LocationManager那点事

定位服务LocationManager是很多APP常用的,用起来也很简单,但是如何能够合理地使用它,将是本文要描述的。通常一款APP是不直接使用LocationManager回调提供的经纬度的,一般还需要将经纬度转化为详细的城市或位置等信息,这边在点评和美团App是经过调接口来实现的(当然如果你对位置信息要求不是很高,你也可以在App本地写个地理围栏)。...
阅读(972) 评论(0)
74条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:144647次
    • 积分:2175
    • 等级:
    • 排名:第19255名
    • 原创:74篇
    • 转载:0篇
    • 译文:0篇
    • 评论:10条
    文章分类
    最新评论