自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Cocoapods里Podfile与Podfile.lock的作用机制:解决Fastlane google-api-client-0.23.9 requires ruby version ~> 2.0

在安装fastlane pgyer插件时候遇到了这个问题,刚开始看是ruby的问题,但是在升级ruby后仍然是这个错误,记录下解决过程:由图显示,是google-api库和ruby库的版本不匹配,在更新ruby不起作用的情况下,我们来更新goolgle-api库的版本,然后查到一个命令:bundle install/update:这里普及下,Cocoapods里Podfile与Podfile.lock的作用机制:在开始使用CocoaPods,执行完pod install之后,会生成一个Po.

2022-03-29 18:02:15 777

原创 cocoapods秒速升级教程

cocoapods迎来新版本1.10.0,许多库从这个版本pod以后,再从旧版本pod是跑不起来的,会报错,pod update 也没用,不知道是不是realm这个库使用xcframework的原因,暂时不详细探究,我们了解下xcframework就可以。官方描述:An XCFramework makes it possible to bundle a binary framework or library for multiple platforms —including iOS devices

2020-11-05 11:01:39 4369

转载 CocoaPods 1.8.0 (2020-7)以上版本换源的问题

对于旧版的 CocoaPods 可以使用如下方法使用 tuna 的镜像:pod repo remove masterpod repo add master https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.gitpod repo update新版的 CocoaPods 不允许用pod repo add直接添加master库了,但是依然可以:cd ~/.cocoapods/repospod repo remove mastergit

2020-07-10 10:23:57 889

原创 github提升下载代码的速度

常常会苦恼于gitclone某个项目的时候速度太慢,看着控制台那几K十几K的龟速,吐血!!原因很简单:github的CDN被伟大的墙屏蔽所致。所以解决方案也很简单,就是手动把CDN和ip地址绑定一下。1.获取 global.ssl.fastly地址访问 http://github.global.ssl.fastly.net.ipaddress.com/#ipinfo获取cdn域名以及ip地址2、获取github地址访问 http://github.com.ipaddress.com/

2020-07-10 10:17:27 308

原创 搭建Flutter环境-Android license status unknown问题解决

如题,安装Flutter环境,最后执行flutter doctor时出现:Android license status unknown.按照正常步骤肯定是各种百度,然后按照文章提示执行:flutter doctor --android-licenses到这来问题来了,出现错误:Exception in thread "main" java.lang.NoClassDefFoundError网上那些教程都是建议把Java版本降到Java8的,我不喜欢,我就要用Java11,.

2020-05-26 19:19:37 856 1

原创 #pragma clang diagnostic ignored 忽略警告

在开发过程中,我是比较反感这个⚠️,但是我们的开发离不开它,他能让我们注意一些可能产生错误的地方去修复。在一个阶段完成后,大家都要去处理这个警告的问题,把可能出错的地方修正。在这个过程中,可能会有一些警告,我们能够确定它不会产生影响,并且确认需要这么做的时候。我们就可以使用#pragma clang diagnostic ignored来消除警告。我...

2020-01-15 11:42:36 1477

转载 使用RunLoop优化TableView

最近在整理资料的时候看到了以前写的代码,在此整理下,用到的时候可以方便查看。对 RunLoop 不熟悉的可以查看下《iOS官方文档》和这篇博客《深入理解RunLoop》,讲述的淋漓尽致,相信会对你有很大的帮助。一、使用TableView时出现的问题:平时开发中绘制 tableView 时,我们使用的 cell 可能包含很多业务逻辑,比如加载网络图片、绘制内容等等。如果我们不进行优化的话,...

2019-12-08 02:45:16 500

转载 优化UITableViewCell高度计算的那些事

戳原文:戳我看原文我是前言这篇文章是我和我们团队最近对UITableViewCell利用AutoLayout自动高度计算和UITableView滑动优化的一个总结。我们也在维护一个开源的扩展,UITableView+FDTemplateLayoutCell,让高度计算这个事情变的前所未有的简单,也受到了很多星星的支持,github链接请戳我这篇总结你可以读到:UITa...

2019-12-08 02:37:08 190

原创 NSArray NSMutableArray mutableCopy copy

总结:[NSArray copy] 浅拷贝 还是那个对象[NSArray mutableCopy] 深拷贝 得到NSMutableArray[NSMutableArray copy] 深拷贝 得到 NSArray[NSMutableArray mutableCopy] 深拷贝 得到 NSMutableArray代码分析- (void)viewDidLoad { [sup...

2019-11-21 09:35:47 316

转载 Static关键字理解(iOS)

Static修饰局部变量:当static关键字修饰局部变量时,只会初始化一次。 例 1:@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; [self tes...

2019-11-20 16:23:40 217

原创 解决:工具链无效,app必须建立于通用版本(系统beta版本打包app)

一位朋友遇到这样的审核被拒:Invalid Toolchain. New apps and app updates must be built with the public (GM) versions.查了一些资料,先说下原因:打包时候, iTunes Connect会读取这个值,从而知道app是使用OS X预发布版本的建立的,从而拒绝。将app提交到iTunes Connect时...

2019-09-10 11:48:36 901

转载 组件化方案探究

前言这篇文章主要是我近段时间针对市面上存在的一些组件化方案的调研之后,再经过自己的反思和总结写的,博客中部分文字和图借鉴自下面的博客。各位看官大爷就当做一篇读书笔记来看即可,主要是参考了如下几篇文章,另外零零散散的也看了一些其他资料,但是大多都是相似的 蘑菇街组件化之路 iOS应用架构谈 组件化方案 iOS 组件化 —— 路由设计思路分析 滴滴iOS的组件化...

2019-08-28 11:13:02 413

原创 iOS13 适配 附:获取DeviceToken的Swift版本

iOS 13 如期而至,虽然正式版还没出来,但是适配工作可以开展起来啦。在适配 iOS 13 过程中,遇到了如下一些问题。1. UITextField 的私有属性 _placeholderLabel 被禁止访问了遇到的第一个崩溃是修改UITextField的placeholder的颜色,历史遗留代码如下:[_textField setValue:self.placeholder...

2019-08-13 10:21:13 5280

原创 Can't connect to local MySQL server through socket ‘/tmp/mysql.sock'

brew install mysql后一致报这个错误,然后根据网上的教程一直找mysql.sock文件,结果根本没有这个文件。然后懵逼ing折腾半天,原来是sqlsever没起来,醉了(ps:mysql.sock文件是sever起来后mysql程序自动生成的文件)安装完毕以后不应该是自动启动吗,鹅鹅鹅???废话不说,上图:SUCCESS!然后mysql_...

2019-07-29 17:00:09 216

转载 swift4.0 throw错误处理

对于大部分现代化面向对象的编程语言都拥有结构化的错误处理语法特性,swift也不例外。当我们在一个方法或函数中实现某些功能时,如果遇到错误的用户输入则可能导致严重的异常问题,此时我们可以选择通过抛出异常的方式,将此错误送给函数调用者。我们常用 try-catch 结构,不过在swift编程语言中没有引入专门的 try 语句块,而是直接调用之前的 do 语句块,仅仅将 try 作为抛出异常...

2019-07-22 18:33:15 1230

转载 NSURLSession htpps证书设置

NSURLSession http转Https1.设置代理NSURLSession *sesson = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue a...

2019-04-09 16:34:36 1424

原创 iOS 获取变量属性 :修改UIAlertController样式

iOS8 之后系统把UIActionSheet和UIAlertView合并为了UIAlertController,使用就不比多说了,但在使用的过程中发现样式是固定的,点进去也未发现可以提供更改多样式的属性,所以只能使用KVC在运行时动态访问和修改对象的属性。但在使用过程中需要知道属性类型对应的key值,这里提供两个方法,是别人写好的,借用一下。//获得所有变量- (NSArray *...

2019-04-04 13:43:29 545

原创 swift3.0 enumerated 遍历数组 拿到下标和元素以及反向遍历

1.要遍历数组同时拿到下标值和元素,可通过元祖进行遍历1.1 定义数组一个字符串数组如下let array: [String] = ["a","b","c","d"]1.2 利用元祖进行遍历for (index,value) in array.enumerated() { print(index,value)}1.3 输出结果为0 a1...

2019-04-04 11:32:36 2062

原创 Xcode10 添加自定义代码块

Xcode10添加代码块,发现原来位于右下角的那些东西 都跑到了右上角靠里的位置,比如这里是代码块--------------------手动分割一下-------图太大了-----------------切换到sb的话就是原来的控件部分了那么 控件还好说,不用咱们添加,代码块怎么添加呢?我发现,选中之后点右键,这样子 就跑进去了,接下来就和原来一样了直...

2019-04-03 11:07:23 275

转载 loadView、viewDidLoad及viewDidUnload的关系

标题中所说的3个方法,都是UIViewController的方法,跟UIViewController的view属性的生命周期息息相关。接下来我会一一阐述它们的作用以及它们之间的联系。loadView1.什么时候被调用?每次访问UIViewController的view(比如controller.view、self.view)而且view为nil,loadView方法就会被调用。2.有...

2019-04-01 18:21:48 188

转载 iOS webView播放视频禁止弹出

折腾了半天,各种百度,都是说在html的video中加入webkit-playsinline属性,可是怎么都不起作用,后来去Apple查看官方API,人家已经说的很明白了,真是一顿头大啊。You must set this property to play inline video. Set this property to true to play videos inline. Set t...

2019-03-20 16:35:13 2814 2

转载 关于对象与内存分析

(一)OC对象在底层中的布局我们平时编写的Objective-C代码,在底层都是使用C/C++实现。即Objective-C -> C/C++ -> 汇编语言 -> 机器语言。我们定义个NSObject对象NSObject *object = [[NSObject alloc] init];使用终端命令将OC代码转换成iOS能支持的C/C++代码;xcr...

2019-01-16 17:53:26 210

转载 setNeedsLayout和layoutIfNeeded

解释更新布局总会重新触发layoutSubviews方法。layoutSubviews 继承于UIView的子类重写,进行布局更新,刷新视图。如果某个视图自身的bounds或者子视图的bounds发生改变,那么这个方法会在当前runloop结束的时候被调用。为什么不是立即调用呢?因为渲染毕竟比较消耗性能,特别是视图层级复杂的时候。这种机制下任何UI控件布局上的变动不会立即生效,而是每次间...

2018-12-18 16:54:59 430

原创 Swift 中的 var `property`

今天又发现了一个Swift愉快的codingTip:就是Swift  中的  var `property`在OC中对系统关键字的处理是比较繁琐的,被系统占用的名字是不可以使用的but,Swift只需要加一个符号`就可以搞定

2018-11-27 19:03:59 433

转载 iOS 中的NSLock、 NSRecursiveLock、 NSCondition

摘要:多线程编程中经常会碰到多个线程访问一个变量的问题,那么我们先来熟悉下我们跟线程相关的修饰符nonatomic和atomic一搜索,会有很多文章;但是这些文章有一个共同的特点那就是nonatomic多线程不安全和atomic多线程安全如何来判断线程安全或不安全?对于小公司在大多数项目说的简单点安全就是不报错,不安全就是报错我写了个demo验证了下@property(strong,nonatom...

2018-11-23 18:20:08 323

转载 Swift - OC Tips

最近在尝试oc和swift的混编,一是:swift是大势所趋,终究是要学习的。二是:项目目前架构是oc架构,全部重构为swift也不现实。下面是混编中遇到的一些问题和总结:1.在oc项目中第一次创建swift文件的时候,会弹框提示是否要创建桥接文件。当然要创建了,否则还要自己动手创建和配置。教程网上很多,就不重复了。2.oc的代码中需要调用swift的文件,需要导入隐式头文件:xxx-...

2018-11-14 11:33:07 209

原创 Swift&iOS12 获取ssid的问题

废话不说,直接上代码: private func fetchNetInfo() -> [String : AnyObject]{ let interfaceNames = CNCopySupportedInterfaces() var SSIDInfo = [String : AnyObject]() guard int...

2018-10-30 14:34:25 617

转载 swift 异常捕获try catch的使用

新的异常捕获机制更新于 WWDC 2015上发布的新的Swift2.0,异常的try-catch机制有助于我们更快的定位出错原因所在,此处简单说明下try-catch机制的用法. 1.定义枚举异常值    首先我们可以创建自己的异常枚举值,这要实现ErrorType协议,只不过这个协议是空的,我们加上就好. 2.抛出异常   我们可以在方法中抛出异常,定义抛出异常的方法...

2018-10-25 18:11:11 2406

转载 Swift 泛型

泛型能够让开发者编写自定义需求已经任意类型的灵活可用的的函数和类型。能够让我们避免重复的代码。用一种清晰和抽象的方式来表达代码的意图。1.泛型解决的问题下面是一个非泛型的例子func swapTwoIntValue(inout a:Int,inout b:Int){ //使用inout关键字可以修改传入的数值的原始值。 let tempValue = a a ...

2018-10-25 15:11:14 153

转载 Swift 浅谈Struct与Class

 讨论Struct与Class之前,我们先来看一个概念:Value Type(值类型),Reference Type(引用类型):1. 值类型的变量直接包含他们的数据,对于值类型都有他们自己的数据副本,因此对一个变量操作不可能影响另一个变量;2. 引用类型的变量存储对他们的数据引用,因此后者称为对象,因此对一个变量操作可能影响另一个变量所引用的对象。这就是我们之前博客中提到的深拷贝...

2018-10-25 10:51:52 252

原创 Swift4.0 获取类名 类名.self

今天完善夫特架子,导航里面用夫特获取类名的时候,突然很懵逼,居然木有。类(OC),只好自己研究下了,写了一个获取类名的扩展名,后来发现有个.self的方法,也尝试了下哈,看下图print(UIScreenEdgePanGestureRecognizer().ClassName)print(UIScreenEdgePanGestureRecognizer.self)print(type(o...

2018-10-19 17:15:36 5417

转载 NSAttributedString文本属性设置的使用

// 设置字体属性NSFontAttributeName,默认值:字体:Helvetica(Neue) 字号:12 NSMutableAttributedString *textFont = [[NSMutableAttributedString alloc] initWithString:@"NSAttributedString设置字体大小"];[textFont addAttribute...

2018-10-18 16:29:12 566

转载 iOS 性能调优,成为一名合格 iOS 程序员必须掌握

提供了基于Swift3.0模仿的新浪微博的Demo,大家可以下载看一看:基于Swift3.0高仿的微博客户端,里面针对于微博首页的复杂页面的优化做了很多的处理,页面的FPS 一直保持在59 ~ 60 。看下demo的效果: FPS测试.gifCPU 和GPU关于绘图和动画有两种处理方式CPU(中央处理器)和GPU(图形处理器),CPU的工作都在软件层面,而GPU的在硬件层面。...

2018-10-18 16:26:07 203

转载 swift 声明变量的?和!的区别

 Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错:var stringValue : String //error: variable 'stringValue' used before being initialized//let hash...

2018-10-16 20:23:36 302

转载 Xcode使用自定义字体文件

iOS开发中系统自带的字体不能满足需求,需要自定义字体,应该怎么做呢?手把手教你使用 1.拿到下载到的字体文件,拖入项目中   拖入项目.png 2.配置info.plist文件 配置字段"Fonts provided by application" 添加字体的item   配置info.plist.png 3.进入Target->Build...

2018-10-16 20:10:39 659

转载 利用AutoLayout UILabel文字自动适应大小,显示不全, Autoshrink属性

相比大家会经常遇到  label  或则  textfield等显示文字的  视图时,显示不全,或者无法自动 变化长度  ,自动改变字体的 设置:今天给大家演示一下,如何 在autolayout让label 适应 不同的 宽度: 1.自动 改变字体(字体收缩):首先设置好 label 的约束,包括宽高之后,默认来看 你的  label是不变了 ,但是 当遇到 文字较多时,就会出现显...

2018-08-23 15:26:34 2573

原创 xib写 tableHeadView , frame 不准确的解决方法

打印 headView 的信息后可以看到 autoresize 的属性为 W+H,这个属性决定了 headView会根据 tableview 动态调整宽高所以我们只要将这个动态调整禁用掉就可以解决这个问题了禁用方法: 设置autoresizingMask的属性为默认值 0, OC 为UIViewAutoresizingNoneprivate lazy var headView: ...

2018-07-26 17:10:14 812

原创 关于 iOS开发者账号提示必须更新绑定手机号的解决方法

相信大家最近都遇到了这个问题:在你点击Edite进去修改了手机号,然后回来刷新看到一脸懵逼, md, 坑货,改了还不行....再试一遍?那么正确的姿势是什么呢哈哈,重点来了...第一步:找一个10以上的系统的iPhone(实测为11.3),10以下的没验证过哈,第二步:退出原先的 appleid, 登陆你的开发者账号,第三步:点击这里第四步:点击这里进行修改最后,回到开发者中心-->刷新--...

2018-04-23 15:20:00 3313

转载 iOS的 NSHashTable和NSMapTable用法

在iOS的项目开发过程中,我们经常会使用到NSSet,NSArray,NSDictionary三个类,它们为我们设计较友好的数据结构时提供了很方便的方法先准备本文中将要使用的对象:#import <Foundation/Foundation.h>@interface HHHuman : NSObject@property (nonatomic ,strong) NSString...

2018-04-20 11:57:42 1265

原创 mac使用 升级 ruby及 pod 安装

第一例:默认情况下,Mac OS X 系统已经安装好 Ruby(最新的 Mavericks 随机的 Ruby 版本为2.0.0p247),安装在/System/Library/Frameworks/Ruby.framework/Versions/Current目录下。在命令行下可以直接通过以下命令,确认系统 Ruby 的版本信息:$ ruby --version...

2018-04-19 10:11:46 744

空空如也

空空如也

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

TA关注的人

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