
IOS开发知识
SandyLoo
大神是我前进的方向!
展开
-
#import与#include, #import与@class
(1)#import指令是Object-C针对#include的改进版本,#import确保引用的文件只会被引用一次,这样你就不会陷入递归包含的问题中。 (2)#import与@class二者的区别在于:#import会链入该头文件的全部信息,包括实体变量和方法等;而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑。在头文件中,翻译 2016-03-16 16:48:54 · 414 阅读 · 0 评论 -
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 · 7004 阅读 · 0 评论 -
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 · 407 阅读 · 0 评论 -
获取iOS项目名称及版本号以及网络类型的方法
NSString executableFile = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString )kCFBundleExecutableKey]; //获取项目名称NSString version = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NS原创 2016-06-18 18:02:17 · 543 阅读 · 0 评论 -
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 · 857 阅读 · 0 评论 -
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 · 6312 阅读 · 0 评论 -
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 · 7197 阅读 · 1 评论 -
iOS 开发中制作自己的静态库.a framework
Framework常识苹果平台的链接库除了静态库 .a 和 动态库.dylib 之外,Mac OS/iOS 平台还可以使用 Framework。Framework 实际上是一种打包方式,将库的二进制文件,头文件和有关的资源文件打包到一起,方便管理和分发,这样 Xcode 能够很容易的将其集成到你的工程中去。在 iOS 8 之前,iOS 平台不支持使用动态 Framework,开发者可以使用的 Fra原创 2017-03-29 16:25:55 · 1521 阅读 · 0 评论 -
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 · 18309 阅读 · 0 评论 -
ReactiveCocoa使用介绍
1.ReactiveCocoa常见操作方法介绍。1.1 ReactiveCocoa操作须知所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream.h中,而RACSignal继承RACStream。1.2 ReactiveCocoa操作思想运用的是Hook(钩子)思想,Hook是一种用于改变API(应用程序编程接口:方法)执原创 2017-04-06 10:33:02 · 668 阅读 · 0 评论 -
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 · 2610 阅读 · 0 评论 -
Runtime在项目中的使用场景
由于最近申请的辞职,所以不得不做好下一家面试的准备。 在iOS面试过程中Runtime, Runloop基本是必问的两个问题。 Runtime的概念性问题就不多说了, 本篇文章我会讲述一下Runtime在iOS开发中的实际使用场景。 首先,归纳下Runtime的几个使用场景。做用户埋点统计处理异常崩溃(NSDictionary, NSMutableDictionary, NSArr...原创 2018-05-03 14:43:29 · 3608 阅读 · 0 评论 -
iOS 中的HTTP(面试前可以记忆一下)
HTTP属于老话题了,在项目中我们经常需要往服务端发POST或者GET请求,但是对于HTTP的了解不应只局限于此。千里之行,始于足下。越想走的远,基本原理就应该了解的透彻全面一些,仅仅停留在使用ASIHttpRequest或者AFNetWorking传个参数发个请求的程度上是不够的。这篇文章就是带你全方面回顾一下HTTP。通过本文你能收获哪些内容:·完整HTTP请求与响应包含的必要元素·HTTP不...原创 2018-05-03 14:56:48 · 3726 阅读 · 0 评论 -
iOS 基础动画的使用
UIBezierPath *bezierPath1 = [UIBezierPath bezierPath]; [bezierPath1 moveToPoint: CGPointMake(286.5, 611.5)]; //一定要设置 不然底层的CGPathRef找不到起始点,将会崩溃 [bezierPath1 addCurveToPoint: CGPointMake(32原创 2016-04-19 22:48:01 · 365 阅读 · 0 评论 -
UIImagePickerController 用法
//首选需要遵循协议 <UIImagePickerControllerDelegate,UINavigationControllerDelegate>//如果是imageView的话, interactionEnabled必须设置为YES self.headImageView.userInteractionEnabled = YES; UITapGestureRecognizer原创 2016-05-02 16:38:22 · 400 阅读 · 0 评论 -
高内聚低耦合 浅解
内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。 内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。 所谓高内聚是指一个软件模块是由相关性很强的代码组原创 2016-04-05 12:09:00 · 1298 阅读 · 0 评论 -
在写一个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 · 632 阅读 · 0 评论 -
贝塞尔曲线 & 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 · 2413 阅读 · 0 评论 -
drawRect & 内存 -> 深究
转载自:http://bihongbo.com/2016/01/03/memoryGhostdrawRect/在平日的开发中,随意覆盖drawRect方法,稍有不慎就会让你的程序内存暴增。下面我们来看一个例子。去年的某天午后,北京的雾霾依旧像现在这样醇厚,我的同事辉哥像往常一样与我楼下约烟。我见辉哥表情凝重,便询问究竟。辉哥做了一个画板功能,但是苦于内存问题一直得不到解决。画板功能转载 2016-04-05 12:28:34 · 2186 阅读 · 0 评论 -
内存管理 浅析 内存管理/内存优化技巧
内存管理 浅析下列行为都会增加一个app的内存占用: 1、创建一个OC对象; 2、定义一个变量; 3、调用一个函数或者方法。 如果app占用内存过大,系统可能会强制关闭app,造成闪退现象,影响用户体验。如何让回收那些不再使用的对象呢?本文着重介绍OC中的内存管理。 所谓内存管理,就是对内存进行管理,涉及的操作有: 1、分配内翻译 2016-04-05 12:38:31 · 1861 阅读 · 0 评论 -
drawRect 进阶
iOS的绘图操作是在UIView类的drawRect方法中完成的,所以如果我们要想在一个UIView中绘图,需要写一个扩展UIView 的类,并重写drawRect方法,在这里进行绘图操作,程序会自动调用此方法进行绘图。下面先说明一下绘图,比如,你想绘制一个方块,你需要写一个类来扩展UIView并在drawRect方法中填入如下代码:- (void)drawRect:(CGRect)rec转载 2016-04-05 12:31:32 · 533 阅读 · 0 评论 -
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 · 606 阅读 · 0 评论 -
热门IOS 第三方库
综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称”精通iOS开发”吗?https://github.com/syedhali/EZAudio 基于核心音频,有助于进行实时,低延迟音频处理和可视化的iOS和OSX音频可视化框架。https://github.com/bang590/JSPatch JSPatch使转载 2016-04-05 12:22:00 · 862 阅读 · 0 评论 -
iOS框架学习
1.框架概述 iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer)。下面是IOS系统结构图。 Core OS是位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任转载 2016-04-05 19:43:54 · 399 阅读 · 0 评论 -
iOS多线程简单使用
为什么要用多线程? 举个例子:在同一个程序里面, 存在操作A,操作B。假设操作A耗时5s,操作B耗时0.1s,如果我先触发操作A,接着马上触发操作B,那么操作B的响应必定要在A结束以后才能执行;这样会影响用户体验。为什么会这样那? 因为操作A,B都在同一个线程里面,线程的执行是具有顺序性的,A操作结束,才能进行下一个B操作。 但是A操作耗时较长原创 2016-03-11 11:16:32 · 390 阅读 · 0 评论 -
iOS本地通知
本地通知指的APP在 进入后台 或者 未打开APP的情况下 推送出来的提示。 // 1.创建通知 UILocalNotification *localNote = [[UILocalNotificationalloc] init]; // 2.设置属性 localNote.alertAction =@"温馨提示"; // 操作标题原创 2016-03-09 16:20:41 · 413 阅读 · 0 评论 -
RTMP流媒体播放过程
本文描述了从打开一个RTMP流媒体到视音频数据开始播放的全过程。注意:RTMP中的逻辑结构RTMP协议规定,播放一个流媒体有两个前提步骤:第一步,建立一个网络连接(NetConnection);第二步,建立一个网络流(NetStream)。其中,网络连接代表服务器端应用程序和客户端之间基础的连通关系。网络流代表了发送多媒体数据的通道。服务器和客户端之间只能建立一个网络连接,但是基于转载 2016-04-13 09:52:59 · 747 阅读 · 0 评论 -
iOS 无痕埋点方案探究
前言 当前互联网行业的竞争已经是非常激烈了, “功能驱动”的时代已经过去了, 现在更加注重软件的细节, 以及用户的体验问题。 说到用户体验,就不得不提到用户的操作行为。 在我们的软件中,我们会到处进行埋点, 以便提取到我们想要的数据,进而分析用户的行为习惯。 通过这些数据,我们也可以更好的分析出用户的操作趋势,从而在用户体验上把我们的app做的更好。随着公司业务的发展,数据的重要性日...原创 2018-07-25 14:24:07 · 4943 阅读 · 0 评论