自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 iOS 无痕埋点方案探究

前言 当前互联网行业的竞争已经是非常激烈了, “功能驱动”的时代已经过去了, 现在更加注重软件的细节, 以及用户的体验问题。 说到用户体验,就不得不提到用户的操作行为。 在我们的软件中,我们会到处进行埋点, 以便提取到我们想要的数据,进而分析用户的行为习惯。 通过这些数据,我们也可以更好的分析出用户的操作趋势,从而在用户体验上把我们的app做的更好。随着公司业务的发展,数据的重要性日...

2018-07-25 14:24:07 4818

原创 iOS逆向 - Thoes的安装

1 安装dpkg和ldidbrew install dpkg ldid如果没有安装Homebrew,那么安装它也仅仅只需要一句话(可能需要VPN环境,github最近越来越不稳定也是众所周知的事情):/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/insta...

2018-07-25 14:18:29 744

原创 iOS 中的HTTP(面试前可以记忆一下)

HTTP属于老话题了,在项目中我们经常需要往服务端发POST或者GET请求,但是对于HTTP的了解不应只局限于此。千里之行,始于足下。越想走的远,基本原理就应该了解的透彻全面一些,仅仅停留在使用ASIHttpRequest或者AFNetWorking传个参数发个请求的程度上是不够的。这篇文章就是带你全方面回顾一下HTTP。通过本文你能收获哪些内容:·完整HTTP请求与响应包含的必要元素·HTTP不...

2018-05-03 14:56:48 3622

原创 Runtime在项目中的使用场景

    由于最近申请的辞职,所以不得不做好下一家面试的准备。 在iOS面试过程中Runtime, Runloop基本是必问的两个问题。 Runtime的概念性问题就不多说了, 本篇文章我会讲述一下Runtime在iOS开发中的实际使用场景。    首先,归纳下Runtime的几个使用场景。做用户埋点统计处理异常崩溃(NSDictionary, NSMutableDictionary,  NSArr...

2018-05-03 14:43:29 3100

原创 Xcode登录apple id 提示 This action could not be completed

问题描述:      打开xcode,运行工程时,xcode提示输入公司开发者账号密码(惊讶,之前没出现过的),按照要求输入密码,但又提示账号过期或密码可能被修改。 但是网上登录苹果开发者,密码又是正常的。       百度了下,把xcode偏好设置里面的过期账号(所有账号)全部删除后,发现不能登陆,提示“This action could not be completed.try again”....

2018-05-03 08:51:08 2439

原创 MAC终端ssh连接服务器,空闲时间自动断开连接

方法一 :   配置“/etc/ssh/ssh_config”文件1 打开MAC终端  /etc/ssh/   enter2 sudo vim ssh_config (必须用管理员权限编辑,否则无法编辑)3 shift + i 进入编辑模式,  在host*下面加入 ServerAliveInterval 60   一项, 如下图4  shift + : 输

2017-07-11 16:03:01 12012 1

转载 iOS第三方库-CocoaLumberjack-DDLog 使用

原文地址: http://blog.sina.com.cn/s/blog_7b9d64af0101kkiy.html大概需要三个步骤:一、安装xCode扩展插件XcodeColors。二、引入第三方库CocoaLumberjack。三、修改NSLog为DDLog方式。一、安装xCode扩展插件XcodeColors1.下载地址:https

2017-05-16 10:57:04 1177

原创 ReactiveCocoa使用介绍

1.ReactiveCocoa常见操作方法介绍。1.1 ReactiveCocoa操作须知所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream.h中,而RACSignal继承RACStream。1.2 ReactiveCocoa操作思想运用的是Hook(钩子)思想,Hook是一种用于改变API(应用程序编程接口:方法)执

2017-04-06 10:33:02 589

原创 iOS 开发中制作自己的静态库.a framework

Framework常识苹果平台的链接库除了静态库 .a 和 动态库.dylib 之外,Mac OS/iOS 平台还可以使用 Framework。Framework 实际上是一种打包方式,将库的二进制文件,头文件和有关的资源文件打包到一起,方便管理和分发,这样 Xcode 能够很容易的将其集成到你的工程中去。在 iOS 8 之前,iOS 平台不支持使用动态 Framework,开发者可以使用的 Fra

2017-03-29 16:25:55 1435

原创 OC与JS的交互(iOS与H5混编)

OC与JS的交互(iOS与H5混编)在开发过程中,经常会出现需要iOS移动端与H5混编的使用场景。 iOS中加载html网页, 可以使用UIWebView或WKWebView. 本篇博客将介绍两种控件使用过程中如何实现OC与JS的交互。UIWebView delegate 协议方法 //网页即将开始加载 - (BOOL)webView:(UIWebView *)webView shouldSta

2017-03-24 14:50:00 18038

原创 iOS反编译

上架至App Store的app,被apple加密了。想要反编译要麻烦许多。但是在debug下产生的ipa或者是release下的ipa包或者是渠道包都能直接反编译。首先介绍针对Xcode导出的ipa包的反编译。需要用到软件 :class-dump 和 Hopper Disassembler。软件下载地址如下: class-dump 链接: https://pan.baidu.com/s/1

2017-02-14 20:56:57 6957 1

原创 iOS获取h5的内容

- (void)viewDidLoad {[super viewDidLoad];NSString *strurl=@"html 地址";UIWebView *web = [[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];web.delegate = self;[web loadRequest:[NSURLRequest

2016-12-26 14:39:36 6122

原创 iOS中的图片处理

iOS中经常会遇到需要对图片处理的情况,对图片处理的分为两种: 图片压缩 与 图片剪裁。1 图片压缩: 指的在不改变图片大小的情况下,通过改变图片质量来实现简单的压缩, iOS中图片压缩如下: UIImage * image = [UIImage imageNamed:@"test.png"]; // 0.6为压缩比, 该值范围为0-1, 方法返回值为NSData NSDa

2016-10-13 15:20:54 577

原创 iOS中的传感器---摇一摇, 计步器,距离感应,陀螺仪

前几天项目中用到了一下CoreMotion框架,觉得iOS中的传感器还是挺好玩的,又花了点时间去了解了一下iOS中其他一些常用的传感器应用,今天简单做下总结。 iOS中的传感器大致有以下几种:运动传感器\加速度传感器\加速计(Motion/Accelerometer Sensor)环境光传感器(Ambient Light Sensor)距离传感器(Proximity Sensor)磁力计传

2016-09-28 17:29:11 3174

原创 iOS 中的加密方式

1 说明在开发应用的时候,数据的安全性至关重要,而仅仅用POST请求提交用户的隐私数据,还是不能完全解决安全问题。2.常见的加密算法MD5 \ SHA \ DES \ 3DES \ RC2和RC4 \ RSA \ IDEA \ DSA \ AES3.加密方式介绍(1)MD51.简单说明 MD5:全称是Message Digest Algorithm 5,译为“消息摘要算法第5版” 效果:对输入信

2016-09-20 10:43:15 784

原创 MAC, Win 下 ZendStudio 10.5的破解与安装

1 下载ZendStudio 10.5首先下载ZendStudio 10.5 我使用的是mac版 下载地址是: http://downloads.zend.com/studio-eclipse/10.5.0/ZendStudio-10.5.0-macosx.cocoa.x86_64.dmg2 下载破解文件 下载破解文件: com.zend.php.core_10.5.0.v20131105-15

2016-08-25 09:49:33 827

原创 服务器负载均衡

1.1 什么是负载均衡? 负载均衡(又称为负载分担),英文名称为Load Balance。负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器列阵,籍此提供快速获取

2016-08-25 09:40:50 857

原创 Xcode indexing: load index

前几天突然遇到Xcode项目状态一直indexing的提示, 此状态指的是Xcode一直去加载索引文件。 百度, google查了基本都会是以下的回答:defaults write com.apple.dt.Xcode IDEIndexDisable 1 这会解决Xcode一直处于indexing状态; * 需要时候,把1改为0就可以了: defaul

2016-07-30 15:29:44 2520 1

原创 iOS中如何实现单个页面支持横竖屏(其他页面只能竖屏)

最近在自己的项目里面 有需要做一个需求 : app中某一个页面支持横竖屏, 而其他页面只能竖屏。 实现方法如下: 1 首先需要Xcode中选中支持的屏幕方向 2 Appdelegate中 .h@property (nonatomic,assign)NSInteger allowRotate; .m中//此方法会在设备横竖屏变化的时候调用- (NSUInteger)applicatio

2016-07-27 11:52:48 11361 2

原创 获取iOS项目名称及版本号以及网络类型的方法

NSString executableFile = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString )kCFBundleExecutableKey]; //获取项目名称NSString version = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NS

2016-06-18 18:02:17 490

原创 AFNetworking 报错 JSON text did not start with array or object and option to allow fragments not set

最近用AF网络请求, 遇到题目所示报错。原因如下: AFNetworking默认把响应结果当成json来处理,(manager.responseSerializer = [AFJSONResponseSerializer serializer]) ,但是我们请求的页面 返回的并不是一个json文本,而是一个html网页,AF并不知道,它认为请求的结果就是一个json文本! 然后以json的形式去解析

2016-05-29 10:50:18 6818

原创 GPUImage相关

下载GPUImage 地址 : https://github.com/BradLarson/GPUImage把GPUImage.xcodeproj 拖到你的Xcode project(注意将source与工程文件一起加入原有工程finer文件下面, 单独将GPUImage.xcodeproj拖进项目中)在app的target依赖设置里面添加GPUImage.a作为Target Depen

2016-05-22 16:07:02 363

原创 UIImagePickerController 用法

//首选需要遵循协议 <UIImagePickerControllerDelegate,UINavigationControllerDelegate>//如果是imageView的话, interactionEnabled必须设置为YES self.headImageView.userInteractionEnabled = YES; UITapGestureRecognizer

2016-05-02 16:38:22 359

原创 iOS 基础动画的使用

UIBezierPath *bezierPath1 = [UIBezierPath bezierPath]; [bezierPath1 moveToPoint: CGPointMake(286.5, 611.5)]; //一定要设置 不然底层的CGPathRef找不到起始点,将会崩溃 [bezierPath1 addCurveToPoint: CGPointMake(32

2016-04-19 22:48:01 315

原创 iOS 手势

1、UIGestureRecognizer介绍手势识别在iOS上非常重要,手势操作移动设备的重要特征,极大的增加了移动设备使用便捷性。iOS系统在3.2以后,为方便开发这使用一些常用的手势,提供了UIGestureRecognizer类。手势识别UIGestureRecognizer类是个抽象类,下面的子类是具体的手势,开发这可以直接使用这些手势识别。UITapGestur

2016-04-19 22:20:34 470

转载 RTMP流媒体播放过程

本文描述了从打开一个RTMP流媒体到视音频数据开始播放的全过程。注意:RTMP中的逻辑结构RTMP协议规定,播放一个流媒体有两个前提步骤:第一步,建立一个网络连接(NetConnection);第二步,建立一个网络流(NetStream)。其中,网络连接代表服务器端应用程序和客户端之间基础的连通关系。网络流代表了发送多媒体数据的通道。服务器和客户端之间只能建立一个网络连接,但是基于

2016-04-13 09:52:59 695

转载 iOS框架学习

1.框架概述 iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer)。下面是IOS系统结构图。  Core OS是位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任

2016-04-05 19:43:54 342

原创 二维码的生成/扫描

二维码的生成://实现效果: 点击空白处生成一个二维码, 扫描二维码可以进入百度页面- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{    // 1.创建过滤器    CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; //名字必须写对

2016-04-05 19:17:58 592

原创 git的使用 - 团队开发

1、显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder2、隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false && killall Finder显示文件:

2016-04-05 18:50:27 452

翻译 内存管理 浅析 内存管理/内存优化技巧

内存管理 浅析下列行为都会增加一个app的内存占用:    1、创建一个OC对象;    2、定义一个变量;    3、调用一个函数或者方法。    如果app占用内存过大,系统可能会强制关闭app,造成闪退现象,影响用户体验。如何让回收那些不再使用的对象呢?本文着重介绍OC中的内存管理。    所谓内存管理,就是对内存进行管理,涉及的操作有:    1、分配内

2016-04-05 12:38:31 1786

转载 drawRect 进阶

iOS的绘图操作是在UIView类的drawRect方法中完成的,所以如果我们要想在一个UIView中绘图,需要写一个扩展UIView 的类,并重写drawRect方法,在这里进行绘图操作,程序会自动调用此方法进行绘图。下面先说明一下绘图,比如,你想绘制一个方块,你需要写一个类来扩展UIView并在drawRect方法中填入如下代码:- (void)drawRect:(CGRect)rec

2016-04-05 12:31:32 479

转载 drawRect & 内存 -> 深究

转载自:http://bihongbo.com/2016/01/03/memoryGhostdrawRect/在平日的开发中,随意覆盖drawRect方法,稍有不慎就会让你的程序内存暴增。下面我们来看一个例子。去年的某天午后,北京的雾霾依旧像现在这样醇厚,我的同事辉哥像往常一样与我楼下约烟。我见辉哥表情凝重,便询问究竟。辉哥做了一个画板功能,但是苦于内存问题一直得不到解决。画板功能

2016-04-05 12:28:34 2108

转载 热门IOS 第三方库

综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称”精通iOS开发”吗?https://github.com/syedhali/EZAudio 基于核心音频,有助于进行实时,低延迟音频处理和可视化的iOS和OSX音频可视化框架。https://github.com/bang590/JSPatch JSPatch使

2016-04-05 12:22:00 797

转载 贝塞尔曲线 & CAShapeLayer & Stroke 动画 浅谈

转载自:http://46aae4d1e2371e4aa769798941cef698.devproxy.yunshipei.com/qiaoqiaoqiao2014/article/details/46928787 1.CAShapeLayer简介 1.1CAShapeLayer继承于CALayer,可以使用CALayer的所有属性值;   1.2CAShapeL

2016-04-05 12:19:59 2353

原创 KVO, 通知,单例,协议,代理,KVC(待续)

KVO的全称是Key-Value Observing,它实现了一种机制,对所关心的属性对象添加观察者,当属性值发生变化时会得到通知,我们可以对变化做相应的处理。看过设计模式的同学应该知道,这是一种典型的观察者模式。KVO的最大优点就是底层框架已经支持,开发人员不需要实现属性值发生变化时发送通知的方案,这样就大大减少开发的工作量。其次,KVO框架很强大,可以支持多个观察者观察同一属性,或者一个观察者

2016-04-05 12:18:41 555

原创 iOS进阶推荐书目,网站以及链接

《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》([英]Matt Galloway)很多面试题有涉及《IOS数据库应用高级编程(第2版)》([美]艾烈希(Patrick Alessi))《移动开发经典丛书・iOS网络高级编程:iPhone和iPad的企业应用开发》([美]考克斯(Jack Cox),[美]琼斯(Nathan Jone

2016-04-05 12:15:33 540

转载 在写一个iOS应用之前必须做的7件事

转载自:http://www.cocoachina.com/ios/20160316/15685.html原文:https://medium.com/ios-os-x-development/7-things-you-must-absolutely-do-before-writing-an-ios-app-a8bacf710c57#.y7k0hh9mb英文原文第一部分:https:

2016-04-05 12:14:17 582

原创 高内聚低耦合 浅解

内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。  内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。 所谓高内聚是指一个软件模块是由相关性很强的代码组

2016-04-05 12:09:00 1214

翻译 #import与#include, #import与@class

(1)#import指令是Object-C针对#include的改进版本,#import确保引用的文件只会被引用一次,这样你就不会陷入递归包含的问题中。 (2)#import与@class二者的区别在于:#import会链入该头文件的全部信息,包括实体变量和方法等;而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑。在头文件中,

2016-03-16 16:48:54 364

原创 Runtime运行时机制

Runtime运行时机制是什么?Runtime是一套比较底层的纯C语言API, 属于一个C语言库, 包含了很多底层的C语言API平时编写的OC代码, 在程序运行过程中, 其实最终都是转成runtime的C语言代码, runtime算是OC的幕后工作者例如   :        [ [Person alloc] init] 在底层由runtime转成  objc_msgSen

2016-03-14 21:34:55 538

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除