自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 iOS基于jenkins打包+上传蒲公英+钉钉群通知

jenkins 从零开始,包学包会

2022-08-02 20:03:29 1451 1

原创 Runtime之消息机制

1. 阐述一、Object-C是动态语言,在编译阶段并不知道变量的的具体数据类型,也不知道真正调用的哪个方法。只有在运行时才检查变量的数据类型,同时在运行时才会根据方法名查找要调用的具体方法二、使用Object-C具有如此动态性和灵活性的基础是Runtime三、对象方法调用本质是对象发送消息的过程,使用的就是Runtime的消息机制,即运行时找到selector的方法实现的过程四、方法调用的形式: [recevier selector]2. 方法调用过程2.1 方法调用的流程

2021-09-21 19:02:58 160

转载 什么是IDFA(带你了解什么是IDFA)

IDFA全称应该是Identifier For Advertising, 一个跟device相关的唯一标识符,可以理解为广告id,apple公司提供的用于追踪用户的广告标识符,可以用来打通不同app之间的广告IDFA全称应该是Identifier For Advertising, 一个跟device相关的唯一标识符,可以用来打通不同app之间的广告。比如你在淘宝里搜索了某个商品之后,你在用浏览器去浏览网页的时候,那个网页的广告就会给你展示相应的那个商品的广告。当然你可以重置你的IDFA,使别人不能再tr

2021-05-07 17:57:22 14047

转载 iOS NSProxy 的简单介绍和使用

1、首先简单说一下OC消息发送机制消息发送分两步:第一步,编译阶段不带参数:objc_msgSend(receiver,selector) 带参数:objc_msgSend(recevier,selector,org1,org2,…)在这一阶段确定消息接受者receiver和要去执行的方法selector,这时候不会去确定方法是否实现。第二步,运行时阶段运行时阶段的消息发送的详细步骤如下:如果selector、target两个都是有效的,那就开始查找这个类的 IMP,先从 ca

2020-12-14 17:44:52 1175

转载 ObjectiveC基础-ivar是什么意思

Objective-C运行时定义了几种重要的类型。Class:定义Objective-C类 Ivar:定义对象的实例变量,包括类型和名字。 Protocol:定义正式协议。 objc_property_t:定义属性。叫这个名字可能是为了防止和Objective-C 1.0中的用户类型冲突,那时候还没有属性。 Method:定义对象方法或类方法。这个类型提供了方法的名字(就是**选择器**)、参数数量和类型,以及返回值(这些信息合起来称为方法的**签名**),还有一个指向代码的函数指针(也就是方法

2020-12-14 15:46:03 247

转载 Git错误提交后该如何回滚操作?

git项目的存储主要分为四部分:工作区、暂存区、本地仓库、远程仓库Workspace:工作区(当前用户操作修改的区域) Index / Stage:暂存区 (add后的区域) Repository:仓库区或本地仓库(commit后的区域) Remote:远程仓库(push后的区域)整个过程如下:工作区–>add–>暂存区–>commit–>本地仓库区–>push–>远程仓库区 远程仓库区–>fetch–>使用refs\remotes下对应

2020-12-14 11:02:36 1844

转载 IOS NSPredicate 的常用查询、搜索

简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。最常用到的函数+ (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat, ...;1.比较运算符 > 、< 、== 、 >= 、<= 、 !=例:@"number &...

2019-04-17 15:08:06 447

转载 百度地图点聚合与自定义针头

项目介绍:关于怎么导入百度地图SDK与创建应用就不多说了,百度的文档应该比我说的更详细,下面直接正文吧:1.首先地图的初始化- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated];}- (void)setupView { /// 地图 _mapView = [[...

2018-12-11 10:08:19 235

转载 iOS中常用的宏定义总结

宏定义在C系开发中可以说占有举足轻重的作用,为了简化开发流程,提升工作效率,收集了一些平时常用的宏定义,今后会不定期更新1.UI元素//NavBar高度#define NAVIGATIONBAR_HEIGHT 44 //StatusBar高度#define STATUSBAR_HEIGHT 20 //获取屏幕 宽度、高度#define SCREEN_WIDTH ([UISc...

2018-10-30 16:43:15 129

转载 多级Push页面后优雅的返回指定控制器几种方法

在开发过程中我们可能会遇到不同的产品需求,例如说A--&gt;B--C,如果是层级返回的话我们只需要pop回去就好,但是如果是back到指定VC的时候,例如:A--&gt;B--C,然后从C回到A,在开发过程中还是遇到的比较多的,本文总结了常见的三种方法,以此记录一下。使用场景:  A -- &gt; B -- &gt; C,然后现在要求C直接pop回到A。方法一C返回到B的时候...

2018-10-30 16:14:59 202

转载 NSRunLoop

是什么?RunLoop其实是iOS中的一种消息机制的处理模式。字面的意识就是跑圈,那就是循环了呗。对,就是循环!理解:学过C语言的同学都知道,每个程序从开始运行到完成需要的计算后打印台打印出你需要的信息后就结束了任务。那么对于我们的手机来说,任何应用在前台他都是在一直处于运行状态的,随时等待你的命令,对吧!那为什么他在做完你一次的命令任务后退出呢?这个问题的核心就是RunLoop。...

2018-10-11 11:33:12 99

原创 IOS网络相关知识总结

一、前言     以下是我通过博客阅读及自身对于网络的了解进行的总结,有的地方是直接则抄过来的,希望对各位有所帮助。二、网络模型    OSI 七层模型:我们一般使用的网络数据传输由下而上共有七层,分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。如下图:三、TCP/IP基础知识TCP/IP的由来通信设备存在不同的系统、语言、协议差异,为了将其规范起来,...

2018-10-10 16:19:28 365

转载 IOS 多线程之信号量

在iOS开发的道路上,多线程的重要性不言而喻. 大部分我们都停留在基础的使用上面.缺乏高级应用. 缺乏提升,是因为我们面对他太少,复杂的事情重复做,复杂的事务基础化. 差距就是这样拉开了 言归正传: 今天讲讲GCD的高级应用之信号量篇 一, 信号量的本质:信号量的本质是数据操作锁, 它本身不具有数据交换的功能,而是通过控制其他的通信资源来实现进程间通信,它本身只是一种外部资源的...

2018-10-10 08:46:53 4989 1

转载 KVO原理分析及使用进阶

概述KVO全称KeyValueObserving,是苹果提供的一套事件通知机制。允许对象监听另一个对象特定属性的改变,并在改变时接收到事件。由于KVO的实现机制,所以对属性才会发生作用,一般继承自NSObject的对象都默认支持KVO。KVO和NSNotificationCenter都是iOS中观察者模式的一种实现。区别在于,相对于被观察者和观察者之间的关系,KVO是一对一的,而不一对多的...

2018-10-09 16:23:37 274

转载 TCP/IP详解

TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到...

2018-09-29 16:26:26 221

转载 iOS网络HTTP、TCP、UDP、Socket 知识总结

一、前言         以下是我自己的学习加理解,分享给大家,同时也算是自己做的笔记吧,俗话说好记性不如烂笔头,希望来的你能有所帮助,有什么理解不到位的地方,还请大神些多多指教。二、网络模型   OSI 七层模型:我们一般使用的网络数据传输由下而上共有七层,分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。OSI网络七层模型TCP/IP模型:TCP/IP ...

2018-09-27 16:55:05 991

转载 NSUserDefaults,NSCoding的使用

NSUserDefaults简介:NSUserDefaults本身是一个单例,在整个程序中只有一个实例对象,它是数据持久化的一种方式, 使用起来也很方便NSUserDefaults存储的数据存在什么地方:存储位置为&lt;UUID for your App&gt;\Library\Preferences&lt;your App's bundle ID&gt;.plist由于该存储位置...

2018-08-17 17:58:31 202

转载 iOS 中成员变量、实例变量、属性 三者区别与联系

一、成员变量、实例变量、属性变量的联系@interface MyViewController :UIViewControlle{    UIButton *yourButton;    int count;    id data;}@property (nonatomic, strong) UIButton *myButton;@end  在{   } 中所声明的变量都为成员变...

2018-08-16 09:04:02 1501 1

转载 Runtime全方位装逼指南

楔子Runtime是什么?见名知意,其概念无非就是“因为 Objective-C 是一门动态语言,所以它需要一个运行时系统……这就是 Runtime 系统”云云。对博主这种菜鸟而言,Runtime 在实际开发中,其实就是一组C语言的函数。胡适说:“多研究些问题,少谈些主义”,云山雾罩的概念听多了总是容易头晕,接下来我们直接从代码入手学习 Runtime。1、由objc_msgSend说开去...

2018-08-07 11:14:43 177

转载 iOS valueForKeyPath常用用法

1、valueForKeyPath可以获取数组中的最小值、最大值、平均值、求和。代码如下: NSArray *array = @[@10, @23, @43, @54, @7, @17, @5];+ (NSString *)caculateArray:(NSArray *)array{    CGFloat sum = [[array valueForKeyPath:@"@sum...

2018-08-06 14:54:56 687

转载 iOS多线程详解

一、概述在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程。由于在iOS中除了主线程,其他子线程是独立于Cocoa Touch的,所以只有主线程可以更新UI界面。iOS中多线程使用并不复杂,关键是如何控制好各个线程的执行顺序、处理好资源竞争问题。多线程的实现有以下几种方式: NSThread:(1)使用NSThread对象建立一个线程非常方便...

2018-08-03 09:19:26 1117

转载 iOS拦截系统KVO监听,防止多次删除和添加

最近项目中处理kvo 的时候,遇到一个问题:当我操作的时候,会发现kvo 释放的时候,会崩溃, 崩溃日志如下:/*Terminating app due to uncaught exception 'NSRangeException', reason: 'Cannot remove an observer &lt;SecondViewController 0x7f83d8f30a50&gt; fo...

2018-05-18 11:01:14 546

转载 GCD合集:

    GCD        dispatch_set_target_queue        dispatch_after        Dispatch Group        dispatch_barrier_async        dispatch_sync        dispatch_apply        dispatch_suspend/dispatch_resume   ...

2018-05-16 09:04:50 293

转载 iOS KVO的基本使用

KVO : (Key - Value - Observer) 键值观察者,是观察者设计模式的一种具体实现(C层和M层的通信)KVO触发机制:一个对象(观察者),检测另一个对象(被观察者)的某属性是否发生变化,若被监测的属性发生了更改,会触发观察者的一个方法(方法名固定,类似代理方法)使用步骤:注册观察者(为被观察这指定观察者以及被观察者属性)实现回调方法触发回调方法移除观察者一般KVO奔溃的原因:...

2018-05-04 09:21:27 4010 1

转载 MVC,MVP 和 MVVM 的图示

一、MVCMVC模式的意思是,软件可以分成三个部分。视图(View):用户界面。控制器(Controller):业务逻辑模型(Model):数据保存各部分之间的通信方式如下。View 传送指令到 ControllerController 完成业务逻辑后,要求 Model 改变状态Model 将新的数据发送到 Vie

2018-01-22 09:29:49 250

转载 iOS开发 -- KVO的实现原理与具体应用

iOS开发 -- KVO的实现原理与具体应用 啊左 关注2016.05.03 16:23* 字数 2603 阅读 19768评论 96喜欢 274赞赏 1本文分为2个部分:概念与应用。概念部分旨在剖析 KVO 这一设计模式的实现原理;应用部分通过创建的项目,以说明 KVO 技术在 iOS 开发中所带来的作用;如果是作为刚接触 KVO 的初学者

2018-01-17 11:04:41 198

转载 iOS经典面试题总结--内存管理

内存管理1.什么是ARC?ARC是automatic reference counting自动引用计数,在程序编译时自动加入retain/release。在对象被创建时retain count+1,在对象被release时count-1,当count=0时,销毁对象。程序中加入autoreleasepool对象会由系统自动加上autorelease方法,如果该对象引用计数为0,则销

2017-12-22 11:13:40 147

转载 iOS 开发中成员变量与属性的区别

iOS 开发中成员变量与属性的区别最近看了多好关于实例变量 跟属性的一些资料,在这里做一些简单的总结,下面我们直接进入正题.一. 成员变量1.成员变量的作用范围:@public:在任何地方都能直接访问对象的成员变量@private:只能在当前类的对象方法中直接访问,如果子类要访问需要调用父类的get/set方法@protected:可以在当前类及其子类对象方

2017-12-12 17:48:34 441

转载 编程常用英语词汇

application 应用程式 应用、应用程序application framework 应用程式框架、应用框架 应用程序框架architecture 架构、系统架构 体系结构argument 参数(传给函式的值)。array 阵列 数组arrow operator arrow(箭头)运算子 箭头操作符assembly 装配件assembly language 组合语言

2017-08-29 10:43:49 339

转载 Error Domain=NSURLErrorDomain Code=-999错误

有时候遇到这个错误:Error Domain=NSURLErrorDomain Code=-999 “The operation couldn’t be completed.这里有一个解释:王正东博客 | Error Domain=NSURLErrorDomain Code=-999 “The operation couldn’t be completed. - (void)webVi

2017-08-02 16:05:08 2441

转载 iOS 修改webkit默认 UserAgent

有个项目需求,要区分打开H5是在本地APP还是在手机浏览器,前端伙伴说需要配合修改默认的 UserAgent,以便区分。 一、如何获取UserAgentUIWebView方式:UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];NSString *userAgent = [webView stri

2017-08-02 15:41:05 3775

转载 iOS~runtime理解

什么是Runtime我们写的代码在程序运行过程中都会被转化成runtime的C代码执行,例如[target doSomething];会被转化成objc_msgSend(target, @selector(doSomething));。OC中一切都被设计成了对象,我们都知道一个类被初始化成一个实例,这个实例是一个对象。实际上一个类本质上也是一个对象,在runtime中用结构体表示。相关

2017-05-16 11:12:55 147

转载 命令行工具解析Crash文件,dSYM文件进行符号化

序在日常开发中,app难免会发生崩溃。简单的崩溃还好说,复杂的崩溃就需要我们通过解析Crash文件来分析了,解析Crash文件在iOS开发中是比较常见的。获取崩溃信息方式在iOS中获取崩溃信息的方式有很多,比较常见的是使用友盟、云测、百度等第三方分析工具,或者自己收集崩溃信息并上传公司服务器。下面列举一些我们常用的崩溃分析方式:使用友盟、云测、百度等第三方崩溃统

2017-05-11 17:19:57 315

转载 深入理解RunLoop

RunLoop 是 iOS 和 OS X 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。目录RunLoop 的概念RunLoop 与线程的关系RunLoop 对外的

2017-05-09 10:46:55 154

转载 Charles抓包(iOS的http/https请求)

Charles安装HTTP抓包HTTPS抓包1. Charles安装官网下载安装Charles:https://www.charlesproxy.com/download/2. HTTP抓包(1)查看电脑IP地址(2)设置手机HTTP代理手机连上电脑,点击“设置->无线局域网->连接的WiFi”,设置HTTP代理:

2017-05-05 15:44:33 1140

转载 iOS开发网络篇之文件下载、大文件下载、断点下载

iOS开发网络篇之文件下载、大文件下载、断点下载 作者 勤奋的笨老头 关注2015.09.11 00:29 字数 3653 阅读 27572评论 53喜欢 330这里写图片描述iOS开发中经常会用到文件的下载与上传功能,今天咱们来分享一下文件下载的思路。文件上传下篇再说。文件下载分为小文件下载与大文件下载小文件

2017-03-28 17:54:23 244

转载 iOS中的两种主要架构及其优缺点

凡是程序的开发者,应该对程序的架构都不陌生。一个程序的架构的好坏对这个程序有着非常重要的作用。今天我们来看一下iOS开发中用要的两种主流的程序架构。这个过程中我们主要以例子的形式展开。  我们来看第一种架构:如下图所示:         这种程序的架构主要原理是创建了一个导航控制器来控制页面之间的切换。这种架构一般把主界面作为导航控制器的根视图控制器。在上图所求的程序架构中

2017-03-21 10:11:28 395

空空如也

空空如也

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

TA关注的人

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