
ios开发
文章平均质量分 59
liyanjun201
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
消息转发与NSProxy
消息转发 消息转发步骤 调用resolveInstanceMethod:方法 (或 resolveClassMethod:)。允许用户在此时为该 Class 动态添加实现。如果有实现了,则调用并返回YES,那么重新开始objc_msgSend流程。这一次对象会响应这个选择器,一般是因为它已经调用过 class_addMethod。如果仍没实现,继续下面的动作。 调用forw...原创 2018-09-11 09:20:26 · 1100 阅读 · 0 评论 -
iOS应用层加密相关
网络开发准则 网络开发中不允许传输用户明文隐私数据 在本地不允许保存用户明文隐私数据 替换加密 里面密码本进行替换破解方法蛮力攻击 利用明文和密文蛮力穷尽密钥 26个字母 的密码空间: 26*25*24…3*2*1 = 26! = 2^88字母频率分析 根据英文常用的频率进行分析,比如英文e的使用频率13%等 56~64位:几个小时或者几天破解对称原创 2017-09-11 14:19:32 · 435 阅读 · 0 评论 -
指纹识别
iphone 5s 以后推出指纹识别 iOS8.0开放指纹识别 引入系统头文件#import <LocalAuthentication/LocalAuthentication.h>1. 判断版本 //1.判断版本 if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0) { //可以使用指纹识别 5S原创 2017-09-27 15:41:32 · 367 阅读 · 0 评论 -
组件化研究01
简介 组件化将我们这个一个但一的工程分解为各个组件,然后按照某种方式任意组织成为一个拥有完整业务逻辑的工程。原因 耦合性严重 测试不独立 编译速度慢 设计模式的冲突 组件化的优势 组件的独立性 资源重用 高效迭代 配合我们二进制,加快项目的编译速度 组件化应该考虑的问题1. 组件的划分 基础组件 基础配置(宏,常量),原创 2017-09-11 09:35:38 · 259 阅读 · 0 评论 -
AR项目实践二:ar直尺
1. 搭载初始代码 这一部分比较简单就不再秒速了import UIKitimport ARKitimport SceneKitclass ViewController: UIViewController { @IBOutlet weak var scenview: ARSCNView! @IBOutlet weak var targetImg: UIImageView!原创 2017-09-25 18:23:06 · 1166 阅读 · 1 评论 -
ARKit入门01
简介增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。ARKit是基于AVFoundation框架和CoreMotion框架的所需 A9以上设备 (不支持模拟器)se 6s 6sp 7 7p xcode9 bates,iOS11,xco原创 2017-09-08 14:52:45 · 334 阅读 · 0 评论 -
XML解析
解析方式DOM MAC提供的解析方法 (Document Object Model ,文档对象模型。解析时需要将XML文件整体读入,并且将XML结构化成树状,使用时再通过树状结构读取相关数据,查找特定节点,然后对节点进行读或写,iOS中无法直接使用 原因:内存开销巨大!可读可写将数据已树形结构加载到内存SAX iOS提供的解析方式 (Simple API for XML,基于事件驱动原创 2017-09-08 09:42:46 · 274 阅读 · 0 评论 -
NSURLRequest
NSURLRequest缓存策略 NSURLRequestUseProtocolCachePolicy=0 默认缓存策略 NSURLRequestReloadIgnoringLocalCacheData=1 忽略本地缓存数据,直接加载网络数据,每次都是最新数据 应用场景:数据变化比较快非常频繁的APP,彩票 NSURLRequestReturnCacheDataElseLoa原创 2017-09-07 17:16:27 · 237 阅读 · 0 评论 -
网络状态监测Reachability
Reachability 使用Reachability框架 AFN封装了Reachability,可以用AFNetworkReachabilityManager来监测Reachability描述//发生网络状态发生的通知extern NSString *const kReachabilityChangedNotification;typedef NS_ENUM(NSInteger, N原创 2017-09-07 15:06:26 · 274 阅读 · 0 评论 -
对称加密工具类
头文件 包含终端命令,可以验证加密结果是否正确#import <Foundation/Foundation.h>#import <CommonCrypto/CommonCrypto.h>/** * 终端测试指令 * * DES(ECB)加密 * $ echo -n hello | openssl enc -des-ecb -K 616263 -nosalt | base64 *原创 2017-09-30 10:21:37 · 392 阅读 · 0 评论 -
RSA加密
算法简介 RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。 RSA的算法涉及三个参数,n、e1、e2。 其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。 e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)原创 2017-09-30 15:31:30 · 323 阅读 · 0 评论 -
SpriteKit与arkit结合炸弹小游戏
Spritekit介绍http://www.jianshu.com/p/0427dc183ca8游戏介绍点击炸弹,炸弹消失,超过5s没有点击 ,发生爆炸效果图新建项目新建项目选择game 选择spritekit 设置追踪镜头 let configuration = AROrientationTrackingConfiguration()//追踪镜头的位置,只有三个自由度 速度比较快编写核原创 2017-10-11 14:23:58 · 570 阅读 · 0 评论 -
CALayer及其子类以及UIBezierPath、CABasicAnimation
CALayerLayer是在3D空间中的2D平面。Layer管理的几何(例如rotate,transfrom),内容(image等),和可视属性 (backgroundColor,alpha)等信息。Layer主要通过管理bitmap来维护自己的状态信息,从这一点上来说,Layer可以看作 对象模型,因为他们主要用来管理数据。Layer是基于bitmap的,它会捕获View要呈现的...原创 2018-08-02 15:22:44 · 291 阅读 · 0 评论 -
设计模式之责任链
责任链模式概念及目的也称职责链模式 避免将一个请求的发送者与接收这耦合在一起, 让多个对象都有机会处理请求. 将接收请求的对象连接成一条链, 并且沿着这条链传递请求, 直到有一个对象能够处理它为止 责任链模式可以把发送者和接收者进行解耦合,发送方只需把消息发送出去即可,接收者负责对消息进行处理,在工作中,有时候我们可能会遇到这样的情况, 你出差了或者你加班了, ...原创 2018-08-14 17:10:45 · 270 阅读 · 0 评论 -
架构研究--策略模式
概念定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。也称为政策模式目的 算法和对象分开来,使得算法可以独立于使用它的客户而变化我们经常可以看到一些不成熟的代码,在viewcontroller中,写了好多ifelse,使得controller很冗长,并且不方便阅读。为了解耦结构 定义一个抽象类,定义原创 2018-01-19 17:22:48 · 526 阅读 · 0 评论 -
SDWebImage初步学习以及缓存学习
SDWebImageUML图分析 SDWebImageManager是管理的核心类,他聚合了SDWebImageManagerdelegate SDWebImagePrefetcher是预下载的,SDWebImageManager作为一个变量manager聚合在SDWebImagePrefetcher,并且聚合了变量为delegate的SDWebImagePrefetcher原创 2018-01-23 16:33:38 · 319 阅读 · 0 评论 -
runtime深入学习
runtimewww.jianshu.com/p/46dd81402f63 在博客基础上补充一些 说到runtime,它是Objective-c里面最核心的技术,被人们传呼的神乎其神,但是感觉有一层神秘的面纱笼罩其上,毕竟使用场景不多,相信大多数开发者都不会熟练的运用。而网络上也有无数的文章来讲解runtime,但是真的非常的乱,非常的碎片化,很少有讲解的比较全面的。基本概原创 2017-10-18 23:58:43 · 295 阅读 · 0 评论 -
实现定时器功能的几种方式
nsrunLoop GCD RAC NsrunLoop NSRunLoop是IOS消息机制的处理模式 一条线程对应一个RunLoop,主线程的RunLoop默认已经创建好了, 而子线程的需要我们自己手动创建 获取主线程对应的RunLoop对象mainRunLoop/CFRunLoopGetMain( [NSRunLoop mainRunLoop]) 获取原创 2017-12-22 11:44:51 · 1603 阅读 · 0 评论 -
RAC初识
简介简单的说,RAC就是一个第三方库,他可以大大简化你的代码过程。官方的说,ReactiveCocoa(其简称为RAC)是由GitHub开源的一个应用于iOS和OS X开发的新框架。RAC具有函数式编程和响应式编程的特性。 RAC在某些特定情况下开发时可以大大简化代码,并且目前来看安全可靠。RAC常见的类RACSignal:信号类 //1.创建信号 /* didSubScr原创 2017-12-21 15:55:22 · 328 阅读 · 0 评论 -
CABasicAnimation
实例化使用方法animationWithKeyPath:对 CABasicAnimation进行实例化,并指定Layer的属性作为关键路径进行注册。//围绕y轴旋转 CABasicAnimation *transformAnima = [CABasicAnimation animationWithKeyPath:@”transform.rotation.y”]; 设定动画设定动画的属性和说明属性转载 2017-09-14 18:22:40 · 239 阅读 · 0 评论 -
封装fmdb,增删改查只需一行代码
代码地址: swift 版本:点击打开链接oc版本:点击打开链接1.项目上需要离线操作,特此研究fmdb,并写下lyjfmdb框架。改框架优点:(1)一行代码实现增删改查(2)包含事务,执行多局sql,出现问题,回滚回去(3)讲查询到的结果自动封装成model(4)model类创建table,model类属性支持number,int,string,float,以及PrimaryKey(自动增长),...原创 2017-02-15 22:14:53 · 3439 阅读 · 2 评论 -
实现垂直轮播广告(仿淘宝头条) OC版本
实现垂直自动轮播,可以手动上下翻页,可以手动控制轮播显示内容原创 2017-03-10 20:31:34 · 1106 阅读 · 0 评论 -
swift 二维码识别的实现
本文是用系统的AVFoundation来实现二维码的扫描(注意:只支持真机)1.创建viewcontroller来显示按钮进行进入扫描窗口import UIKitimport AVFoundationclass QRcodeViewController: UIViewController { override func viewDidLoad() {原创 2017-01-20 16:15:11 · 1228 阅读 · 0 评论 -
swift3.0 包含年月日十分 时间选择器的实现
相信很多app需要显示年月日时分,但是系统自带的datapicker选择时分后没有年月,故需要这样的项目上不需要显示秒,所以隐藏了秒,需要显示秒的同学,可以参照代码隐藏即可效果图:view代码://// LYJDatePicker02.swift// MyswiftDemo//// Created by Liyanjun on 2017/2/8.//原创 2017-02-08 12:09:11 · 3841 阅读 · 0 评论 -
swift3.0 签名的实现
核心view//// DrawSignatureView.swift// MyswiftDemo//// Created by Liyanjun on 2017/2/7.// Copyright © 2017年 hand. All rights reserved.//import UIKitpublic class DrawSignatureView: UIView原创 2017-02-07 12:19:43 · 1523 阅读 · 1 评论 -
tableView 数据源修改后,reloaddata数据没有更新
问题描述点击一个按钮,要清空一个cell的数据,但是reload没有清空。如图点击物业管理处,要清空公司名称,但是没有如图解决过程:1.查看代码并debug发现在点击按钮的时候的确已经执行了清空操作 func radioReturn(type:OutRegisterSubmitRadioCellType) {原创 2017-02-14 15:31:50 · 4970 阅读 · 0 评论 -
xcode打包的那些坑
1.you have a valid ios distribution certificate in the member center这是因为打包的电脑没有原创 2017-03-01 20:24:47 · 1058 阅读 · 0 评论 -
swift学习arc
1.一个类,只要指向改类的强引用的个数为0的时候,这个类才销毁例如代码:例1:class Person { let name:String init(name:String) {self.name = name } var apartment:Apartment? deinit { print("\(name) is bein原创 2017-01-20 16:11:24 · 258 阅读 · 0 评论 -
利用liyfmdb框架,实现本周,本月,本日,本季度,本年的sqlite查询
需求:查询本地数据库,实现本周,本月,本日,本季度,本年的查询,并实现分页效果,代码是用的自己的lyjfmdb进行的数据库查询代码 //MARK:获取巡检离线数据 func getoffSpaceExam() { let examModelList = ExamModel()原创 2017-02-17 17:08:14 · 562 阅读 · 0 评论 -
iOS10.3 tableViewcell复用出现错乱
问题描述升级到iostableCell出现如下问题 问题解决过程 从图层分析图可以看出 下面拉上来的contentView不见了 查找代码发下 ~ [self.contentView addSubview:self.fouceOn]; ~ ~~~ - (void)fouceOnF{[_fouceOn mas_makeConstraints:^(MASConstraintM原创 2017-03-30 14:28:06 · 2729 阅读 · 0 评论 -
iOS NavigationBar颜色设置方案探究
http://www.cocoachina.com/ios/20161214/18353.html转载 2017-06-14 14:13:52 · 336 阅读 · 0 评论 -
tableView实现第一个cell半遮挡tableHeaderView
问题描述实现如下效果图 居家头条的cell要半遮挡住顶部的banner,并且上下滑动的时候,banner也要滑动实现过程1.让顶部的tableHeaderView是一个空的view,并且设置tableHeaderView的高度等于Banner的高度减去要遮挡的高度。 UIView * view = [[UIView alloc] init]; view.backgroundCol原创 2017-03-15 23:04:48 · 1974 阅读 · 0 评论 -
iOS逆向研究01
iOS逆向环境介绍Drawin体系Cydia - 越狱iOS的软件管理平台 Cydia 之父 - Jay Freeman杰 弗里曼Cycript工具介绍作者saurik官网httpwwwcycriptorg逆向的你基本思路程序进程线程内存结构的概念逆向工具集和安装和使用==iOS逆向环境介绍==* 越狱环境:iphone5s iOS 8.3*luz-iphone:~ root# unam原创 2017-09-04 17:33:37 · 2345 阅读 · 0 评论 -
NSOperation
简介概念 核心概念:将“操作”添加到“队列” 特点 不能直接使用!!! 目的是定义子类共有的属性和方法 子类 NSInvocationOperation NSBlockOperation 与GCD不同 GCD :将“任务”添加“队列”调用方法通过两个子类调用NSInvocationOperation和NSBlockOperationNSInvocationOper原创 2017-09-06 14:34:34 · 220 阅读 · 0 评论 -
GCD研究02
GCD研究002全局并发队列参数解析获取全局并发队列dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 参数解析参数1涉及系统适配 iOS 8.0 服务质量 QOS_CLASS_USER_INTERACTIVE 用户交互(希望线程快速执行,不要放原创 2017-09-06 11:04:32 · 522 阅读 · 0 评论 -
GCD研究01
简介全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 纯C语言,提供了非常多强大的函数优势GCD是苹果公司为多核的并行运算提出的解决方案GCD会自动利用更多的CPU内核(比如双核、四核GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码任务和队列任务:执行什么操作任务执行函数(任务原创 2017-09-04 16:15:21 · 313 阅读 · 0 评论 -
从零开始实现太阳公转AR项目(swift)
前言我们一般创建ar项目都是Augumented Reality App,系统会给我们生成一些代码。今天我们我们就从普通的Single View App一步步创建实现ar项目太阳公转ar小项目创建项目这一部分是创建项目、然后创建从一个viewcontroller点击按钮present进入到我们的SunRevolutionViewController。这些比较简单,我就一笔带过 ps 由于用到相机原创 2017-09-13 12:17:10 · 1894 阅读 · 0 评论 -
散列函数工具类
头文件//// NSString+Hash.h////// Created by liyanjun on 15/11/12.// Copyright (c) 2015年 liyanjun. All rights reserved.//#import <Foundation/Foundation.h>@interface NSString (Hash)#pragma mark - 散原创 2017-09-11 14:49:34 · 367 阅读 · 0 评论 -
iOS逆向研究02
1.第一个逆向程序创建tweak工程➜ iOS /opt/theos/bin/nic.pl NIC 2.0 - New Instance Creator------------------------------ [1.] iphone/activator_event [2.] iphone/application_modern [3.] iphone/cydget [4.] i原创 2017-09-04 17:46:38 · 438 阅读 · 0 评论 -
导航栏底部灰色背景
问题描述导航栏底部有一个灰色背景,导致设置的颜色失真 如图解决方法 self.navigationController.navigationBar.translucent = NO;效果原创 2017-07-27 17:15:41 · 1948 阅读 · 1 评论