iOS
文章平均质量分 81
Vito.ZJX
这个作者很懒,什么都没留下…
展开
-
mac更新10.15之后。pod失败
方案1brew link --overwrite cocoapods方案2brew reinstall cocoapodsbrew install rubybrew link --overwrite cocoapodspod search 失败sudo rm /Library/Caches/CocoaPods/search_index.json...原创 2020-04-21 10:56:18 · 427 阅读 · 0 评论 -
CocoaPods 升级之后遇到的问题. CDN: trunk Repo update failed
最近升级CocoaPods之后,pod install之后出现CDN: trunk Repo update failed ,这是由于搜索源变了,在Podfile文件中添加source 'https://github.com/CocoaPods/Specs.git' ,搜索就可以了.pod search 的时候有些库会出问题,执行pod repo remove trunk移除trunk源,就...原创 2020-03-06 14:48:16 · 1328 阅读 · 0 评论 -
Cocoapods pod setup 失败解决方法分享
最近刚换mac电脑在安装cocoapods过程中遇到问题分享下:安装过程我就不说了,百度很详细.$ pod setup Setting up CocoaPods master repo [!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master Cloning into ‘master’… error: RPC ...原创 2018-03-02 09:24:23 · 1554 阅读 · 0 评论 -
iOS 实现 WiFi 局域网传输文件到 App
我经常使用「多看」和「掌阅」App 看书,其中有一个共同的功能就是 WiFi 传书,根据 App 的提示在电脑浏览器打开指定的地址,传入文件就可以直接发送到手机上阅读了。虽然这个功能需求不是很多,但是也对其进行了一下研究,使用 CocoaHTTPServer 框架对其进行实现。多看」和「掌阅」的 WiFi 传书页面先看下最后的实现结果:进入 App 内展示传输数据,默认是没有传输任何文件的,当点击...原创 2018-03-16 16:50:02 · 7688 阅读 · 2 评论 -
最近很坑的 开发者账号同意协议 Edit Phone Number
昨天在更新 APP 版本时遇到苹果说让同意协议:The updated Apple Developer Program License Agreement needs to be reviewed.In order to update your existing apps and submit new apps to the App Store, the user with the Legal r...原创 2018-04-24 12:12:41 · 3029 阅读 · 0 评论 -
Xcode 10 beta 运行libstdc++报错处理
最近体验xcode beta10出现以下问题:这个错误原因是因为iOS12.0中去掉了lstdc++.6.0.9.tbd动态库, iOS12.0中全部采用libc++代替lstdc++的动态库(如下图):因为beta版本Xcode是无法打包上传appstore,所以肯定还是需要Xcode9.4+Xcode10并行使用,而且现在部分第三方SDK依旧要依赖于lstdc++.6.0.9.tbd动态库,如...原创 2018-06-06 15:30:51 · 5700 阅读 · 1 评论 -
UIViewController的瘦身计划(iOS架构思想篇)
这篇文章里会涉及如下几个方面: 1、代码的组织结构,以及为何要这样写。2、那些场景适合使用子控制器,那些场景应该避免使用子控制器?3、分离UITableView的数据源和UITableViewDataSource协议。4、MVVM的重点是ViewModel,不是响应函数式。5、MVVM中,ReactiveCocoa或RXSwift实现数据绑定的带来的弊端。6、用策略模...转载 2018-08-09 09:13:35 · 190 阅读 · 0 评论 -
内联函数 inline
引入内联函数是为了解决函数调用效率的问题 由于函数之间的调用,会从一个内存地址调到另外一个内存地址,当函数调用完毕之后还会返回原来函数执行的地址。函数调用会有一定的时间开销,引入内联函数就是为了解决这一问题。 那么引用内联函数到底有什么区别呢?万一面试问到了,那只能回答”为了解决函数调用效率的问题”? 代码一 说明:定义一个add(int,int)函数并...转载 2018-08-02 14:38:22 · 198 阅读 · 0 评论 -
performSelector: withObject:anArgument afterDelay 和子线程
- (void)performSelector:(SEL)aSelector withObject:(nullable id)anArgument afterDelay:(NSTimeInterval)delay;添加到子线程为什么不执行?我们知道,当一个应用启动时,系统会开启一个主线程,并且把主线程的runloop激活,也就是run起来,并且主线程的runloop是不会停止的。所以...原创 2018-08-15 14:48:19 · 599 阅读 · 0 评论 -
很好用的抓包工具 wireshark
wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容,...转载 2018-08-16 11:11:12 · 2661 阅读 · 0 评论 -
iOS ipv4和ipv6转换
关于ip地址主要是ipv4转换成ipv6的解决办法 以前的坑:以前也遇到过关于ipv6审核被拒绝的问题,公司给的服务器地址是ip地址,不是域名,所以在苹果审核的时候遇到了ipv6的问题,如果是域名的话问题很容易解决,不过最终还是找到了解决办法,在此分享给大家。前提是我的项目都是用tcp做网络通信,没有用到http,所以我的项目用到了这个GCDAsyncSocket.h第三方,于是我在这...转载 2018-09-20 16:23:55 · 1424 阅读 · 0 评论 -
POST 提交数据方式
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。...转载 2018-11-20 16:56:47 · 262 阅读 · 0 评论 -
iOS 绘图
iOS绘图教程 Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎。它提供了低级别、轻量级、高保真度的2D渲染。该框架可以用于基于路径的绘图、变换、颜色管理、脱屏渲染,模板、渐变、遮蔽、图像数据管理、图像的创建、遮罩以及PDF文档的创建、显示和分析。iOS支持两套图形API族:Core Graphics/QuartZ 2D 和Open原创 2018-02-06 13:57:03 · 248 阅读 · 0 评论 -
OC消息转发机制 整理
我们知道在OC中的实例对象调用一个方法称作消息传递,比如有如下代码:NSMutableString *str = [[NSMutableString alloc] initWithString: @"Jiaming Chen"];[str appendString:@" is a good guy."];上述代码中的第二句str称为消息的接受者,appendString:称作选择子也就是我们常...原创 2018-02-26 12:39:20 · 266 阅读 · 0 评论 -
Runtime原理及简单使用
一、runtime简介RunTime简称运行时。OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数。对于OC的函数,属于动态调用过程,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。事实证明:在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要声明过原创 2018-01-21 13:31:54 · 453 阅读 · 0 评论 -
iOS常见的延时执行
调用NSObject的方法[self performSelector:@selector(run)withObject:nilafterDelay:2.0];//2秒后再调用self的run方法使用GCD函数dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(2.0*NSEC_PER_SEC)),dispatch_g原创 2018-01-15 14:18:34 · 1714 阅读 · 0 评论 -
两个耗时的异步操作如何回调主线程
有这么1种需求首先:分别异步执行2个耗时的操作其次:等2个异步操作都执行完毕后,再回到主线程执行操作如果想要快速高效地实现上述需求,可以考虑用队列组dispatch_group_tgroup = dispatch_group_create();dispatch_group_async(group,dispatch_get_global_queue(DISPATCH_原创 2018-01-15 14:22:05 · 1442 阅读 · 0 评论 -
GCD基本使用
GCD基本使用注意点01 异步函数+并发队列:开启多条线程,并发执行任务02 异步函数+串行队列:开启一条线程,串行执行任务03 同步函数+并发队列:不开线程,串行执行任务04 同步函数+串行队列:不开线程,串行执行任务05 异步函数+主队列:不开线程,在主线程中串行执行任务06 同步函数+主队列:不开线程,串行执行任务(注意死锁发生)07 注意同步函数和异步函数在执行顺序上面原创 2018-06-06 15:31:47 · 285 阅读 · 0 评论 -
运用Runtime将字典转Model
首先说下运用KVC将字典转模型的方式:@implementation Status+ (instancetype)statusWithDict:(NSDictionary *)dict{ Status *status = [[self alloc] init]; [status setValuesForKeysWithDictionary:dict];原创 2018-01-23 11:28:45 · 359 阅读 · 0 评论 -
Http的基本通信过程
HTTP协议简介HTTP的全称是HypertextTransfer Protocol,超文本传输协议规定客户端和服务器之间的数据传输格式让客户端和服务器能有效地进行数据沟通HTTP协议的特点(为什么选择HTTP)简单快速1.因为HTTP协议简单,所以HTTP服务器的程序规模小,因而通信速度很快2.灵活3.HTTP允许传输各种各样的数据4.HTTP 0.9和1原创 2018-01-15 18:46:44 · 3525 阅读 · 0 评论 -
帮助小白快速理解多线程
进程什么是进程进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内比如同时打开迅雷、Xcode,系统就会分别启动2个进程通过“活动监视器”可以查看Mac系统中所开启的进程线程什么是线程1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)一个进程(程序)的所有任务都在线程中执行原创 2018-01-15 11:44:35 · 392 阅读 · 0 评论 -
iOS 链式编程思想
链式编程思想:是将多个操作通过"."号链接在一起成为一句代码,使代码可读性更好. 例如 eat("苹果").cat("电视").paly("游戏").链式编程特点:方法的返回值是block,block必须有返回值(本身对象),block参数(需要操作的值).代表:masonry框架下面用个简单的列子写下链式编程比如小明在吃着苹果&看着电视&玩游戏 : 用代码表示 xiaom原创 2018-01-23 19:26:39 · 213 阅读 · 0 评论 -
HTTP POST GET 本质区别详解
最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。GET请求只能进行url编码,而POST支持多种编码方式。GET请求在URL中传送的参数是有长度限制的,而POST么有。对参数的数据类型,GET只接受ASCII字符,而POST没有限制。GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。原创 2018-02-02 11:02:47 · 273 阅读 · 0 评论 -
网络七层协议的通俗理解
本文转自https://www.cnblogs.com/carlos-mm/p/6297197.html感觉写的挺好的OSI七层模式简单通俗理解 这个模型学了好多次,总是记不住。今天又看了一遍,发现用历史推演的角度去看问题会更有逻辑,更好记。本文不一定严谨,可能有错漏,主要是抛砖引玉,帮助记性不好的人。总体来说,OSI模型是从底层往上层发展出来的。 这个模型推出转载 2018-02-02 15:40:01 · 413 阅读 · 0 评论 -
[深入浅出Cocoa]iOS网络编程之Socket
一,iOS网络编程层次模型在前文《深入浅出Cocoa之Bonjour网络编程》中我介绍了如何在Mac系统下进行 Bonjour 编程,在那篇文章中也介绍过 Cocoa 中网络编程层次结构分为三层,虽然那篇演示的是 Mac 系统的例子,其实对iOS系统来说也是一样的。iOS网络编程层次结构也分为三层:Cocoa层:NSURL,Bonjour,Game Kit,WebKitCore转载 2018-01-26 17:28:45 · 249 阅读 · 0 评论 -
ReactiveCocoa简单使用
一个非常好用的框架,大大减少代码量1.引入ReactiveCocoa框架个人习惯用cocoapods导入use_frameworks!target '项目名称'do pod 'ReactiveCocoa', '~> 7.0.0-alpha.1'end由于oc项目导入swift框架必须加入 use_frameworks!使用了use_frame原创 2018-01-17 17:01:55 · 194 阅读 · 0 评论