自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Swift 5.5之Continuation

在闭包中,您可以执行异步任务,并在异步任务完成后使用continuation.resume方法来继续执行代码。注意,您必须在异步任务的回调中使用resume方法来继续执行代码,而不是在异步函数的主体中。在上面的代码中,fetchFromServer函数使用了async关键字,表示它是一个异步函数,使用await关键字来等待异步任务的完成。在上面的示例中,结果是一个Data对象。使用Continuation,您可以更加方便地管理异步任务的结果,并将异步代码与同步代码结合起来,使得代码更加简洁和易于理解。

2023-09-17 10:20:32 513

原创 iOS 两种方式设置状态栏

4、所以你在使用preferredStatusBarStyle来实现时,该值需要设置为YES,否则不生效。注意:1、该方法在9.0后就废弃了,需要使用在preferredStatusBarStyle方法中实现。要想在页面滑动时,状态栏字体颜色会随着变黑或白色,flag我们已经添加,只要让其主动调用该方法。///会自动调用preferredStatusBarStyle方法,只要加上相关判断即可。2、setStatusBarStyle设置状态栏颜色,我们需要在plist中添加。//1:白色 0:黑色。

2023-08-03 10:17:51 4074

转载 iOS 解决App打包后dSYM文件找不到的问题

dSYM文件保存了调试信息的文件,方便App在线上用户使用时,发生Crash后,进行函数调用堆栈还原,定位Crash原因,文件名通常为:xxx.app.dSYM,文件通常可以通过Xcode进行查看,Window -> Organizer -> Archives -> 选择对应的Archives包 -> Show in Finder -> 选折对应的.xcarchive文件 -> 显示包内容 -> 打开dSYMs文件夹,找到对应的项目名.app.dSYM文件。dSYM文件缺失的问题。处理dSYM文件缺失。

2023-03-22 14:19:39 950

原创 密码键盘弹出来却是明文的?

再后来卸包 替换 等傻瓜操作,发现也不管用,替换了反而svn出现了问题,出现Working copy is too old (format 10, created by Subversion 1.6) 这种报错,然后备份代码,感觉运气太差了,解决报错是shift+comamnd+. 显示当前文件下的隐藏文件,然后删除,发现这样确实svn代码可以恢复了。居然还有这样的bug,svn的错,拽这种三方包的一定要小心隐藏svn文件,有时候程序说不定因为这些隐藏的文件让你死都不知道怎么死的。

2022-10-31 17:59:13 264

原创 iOS import导入时没有提示的解决办法

一些标识符:$(SRCROOT) (这代表工程根目录)、$(PODS_ROOT) (这代表pods文件夹)、$(inherited) (这个是target在设置自己路径的时候如果加了这个,那么就是继承project里设置的路径)在项目的Target的里设置一下,添加cocoapods头文件目录:目录路径直接写:$(PODS_ROOT) (这代表pods文件夹目录) ,后边选择recursive(意思是递归查找子目录)。问题描述:使用cocoapods时,import 找不到头文件。

2022-10-28 15:21:30 616

转载 idea 修改代码保存后自动启服务

原文链接:https://blog.csdn.net/xinan_shuocode/article/details/123588317。新老版本idea不一样,具体的版本差别没测试,建议两个地方都找一下,配置内容是一样的。1. 虽然idea会自动保存,但是触发时间不确定,可以手动触发保存 Ctrl + S。2. 点击idea上面的 小锤子图标,build project也会触发热部署。-- SpringBoot 热部署组件 -->这个配置的意思是:当应用在启动的时候也支持编译。2. 配置静态自动编译。...

2022-08-18 16:15:52 903

转载 SpringBoot中常用的注解

包含@Configuration、@EnableAutoConfiguration、@ComponentScan通常用在主类上;

2022-08-16 17:12:39 377

原创 hitTest的基本用法

让关闭按钮出现在控制器里面,但实际关闭按钮还在他的父视图YFHitTestVIews 外面。由于关闭按钮在父视图外面,又得接受时间,只能把父类自定义继承于UIView,重写hittest方法,目的是返回点击的视图。好久不玩这玩意了,差点忘了,以为父视图重写个方法就行了,半天捕获不到事件,可以在视图的外面,但是不能再控制器的外面!场景:在原有更新弹框 下面加个关闭按钮,只能点击关闭去掉弹框,不是点击屏幕黑屏自由落下;2,关闭按钮不能在控制器的外面,这样重写hittest也不会反应到,坑了n久;......

2022-08-12 16:52:18 785

原创 swift class viewController has no initializers

在ios开发中遇到此问题:class viewController has no initializers解决的办法:将UIViewController的子类中的变量全部进行拆包处理,就是在变量声明的时候加一个?号,在使用的时候拆包处理,加一个!号:...

2022-04-18 15:03:07 2384

原创 Swift强大的数组

1、建立数组 //创建空数组 var arr1 = [Int]() var arr2 = Array<Int>() //创建有默认值的数组 var arr3 = [1,9,3,1,4] var arr4 = Array<Int>(repeating: 1, count: 5)2、尾部添加元素 var arr = [3,4,5,6] arr

2022-04-14 11:33:22 2727

原创 unable to dequeue a cell with identifier xxx - must register a nib or a class fo

问题如下:最近自定义Cell 出现不少问题,一般都是由于没有进行注册下面是我遇到的,写的基本上同样的自定义Cell这个运行就报下面的错误。解决方法:方法一:将方法dequeueReusableCellWithIdentifier: forIndexPath:1替换成方法dequeueReusableCellWithIdentifier:1方法二:在方法dequeueReusableCellWithIdentifier: forIndexPath:的前面添加方法.

2022-04-06 16:58:00 644

原创 swift app启动黑屏

新建swift APP后, 设置rootviewcontroller为其他Controller,如果 勾选的是main.storyboard 运行app ,删除后main.storyboard会有黑屏问题。1.检查info.plist 文件首先我们去到info.plist,删掉如下图箭头所示2.删除SceneDelegate.swift 文件3.删除APPdelegate.swift 中 与Scene相关的代码4.在APPdelegate.swift里面添加window属...

2022-04-06 14:51:24 2664

原创 隐藏MJRefresh中鸡肋“点击或上拉加载更多”?

在项目中如果遇到返回的数据只有一条数据,但是界面依然显示MJ的“点击或上拉加载更多”,那这个就很尴尬了。比如这样如果你想着把MJ里面国际化的东西给删除掉比如这样可是你再运行项目会发现依然有这东西是不是很无语。。。给个建议方法:MJ里面的国际化东西不用动,把下图中MJRefreshConst.m里面改成这样:NSString *const MJRefreshAutoFooterIdleText = @"";这样的:完美解决...

2022-03-24 17:18:00 611

原创 swift 5.1语法 1小时入门

1. 基本数据类型1.1 常量和变量// 常量let a = 10// 变量var b = 11.11.2 类型安全和类型推断 let和var定义常量,编译器可以根据具体的值,来推断类型。 swift 是强类型语言,编译的时候如果赋值类型和声明类型不一致会报错。 1.3 基本类型// 基本类型let aInt: Int = 10let aFloat: Float = 10.1let aDouble: Double = 10.0let aBoo...

2022-03-23 17:06:13 2710

原创 Swift 之 as区别

1.?定义:用?修饰的常量或者变量,代表这是一个可选类型的常量或者变量,就是说这个量可以有值,也可以没有值。如下例子,如果num有值就是int类型,如果没有值那就是nil例子: let num: Int? // nil类型 let num: Int? = 2 // int类型2.!定义:如果要操作一个可选类型的变量,并且你需要进行强解包的时候,你就会用到!。如果有值就会得到变量的值,如果为

2022-03-23 15:19:28 3050

原创 Swift-奇奇怪怪的符号

?- 可选类型?在Swift语言中对一种可选类型(Optional)操作的语法糖,可以用?来表示“有一个值,值是什么”或者“没有值,值是nil”。var A_nil: Int? = nilvar A: Int? = 10var A_other: Int = nil // 'nil' cannot initialize specified type 'Int'这里我们可以看到可选类型的变量既可以设置为有值类型,也可以设置为nil类型,但是A_other设置为nil,程序就会报错,ni...

2022-03-22 10:00:05 496

原创 手动设置ip 访问内网地址

前两天想看看时时日志,打开FinalShell ,结果一直显示连接主机失败,以为是用户名和密码改了,或者是软件过期了需要付费破解,做了一系列废操作,甚至pingxumindeMacBook-Pro:~ xumin$ ssh [email protected]: connect to host 192.168.10.215 port 22: Operation timed outxumindeMacBook-Pro:~ xumin$ ssh [email protected]

2022-02-25 16:40:33 2533

原创 UItableview复用问题

做项目会遇到一个场景,提前定制好的cell,布局好图片,文字等等,但是突然某一行需要加一个单独的按钮或者其他控件,如果cell列表过多,这时候滑动过于频繁,会出现显示错乱,怎么解决?第一,构造好cell后removeFromSuperview掉新增元素 YFFukaTurnLabelLabelCell *cell = [tableView dequeueReusableCellWithIdentifier:@"YFFukaTurnLabelLabelCell"]; cell.se...

2022-02-17 16:38:00 1082

原创 Duplicate interface definition for class 错误的原因

主要原因是因为在同一文件存在工程的不同的目录下,反复添加到工程里。造成重定义,解决办法是删除里重复的refrence就可以了。

2022-01-07 15:31:27 2977

转载 Charles抓https包显示<unknown>

Charles抓https包未正确设置时会遇到<unknown>的情况这个时候我们可以分三步排查, Mac上是否安装并信任证书; 手机是否设置代理、是否已安装描述文件; 手机证书是否已信任。 下面????就描述下具体操作步骤。一、安装mac证书 help ???? SSL Proxying ???? Install charles Root Certificate 钥匙串中搜索关键字“Charles”找到刚安装的

2021-12-29 16:31:04 8459

原创 上传ipa过慢的解决方式

j宝钢推荐方式,找到路径打开:/etc/hosts 文件打开文件,添加一行17.56.138.14 contentdelivery02.itunes.apple.com然后保存,重新传 速度暴增;第二种是参考ios解决Xcode打包上传ipa文件到AppStore很卡很慢的问题 - 简书目的在于替换com.apple.amp.itmstransporter,然后借助苹果工具Transporter上传ipa,导出ipa很长时间没用了,竟然忘了,参照Xcode10 - 导出ip...

2021-12-27 18:00:16 2461

转载 iOS弹出视图动画

本次要做的例子是iOS的弹出视图动画,不喜欢废话,直接上图:popAnimation.gif上图就是要实现的效果,不喜欢看文章的人,点击这里直达代码。该Demo中涉及两个类:PopOutView:弹出视图类MJPopTool:弹出视图工具类1、PopOutView.h文件代码如下:#import <UIKit/UIKit.h>@class PopOutView;typedef void(^PopOutViewDismissBlock)(Pop..

2021-10-12 14:43:30 758

转载 sourcetree打tag

步骤1步骤2步骤3

2021-09-14 11:17:42 2207

转载 GitLab中配置SSH key

在继续阅读后续内容前,请自行注册GitLab账号(一般进公司,配置管理员或者组长会给你创建账户的)。由于你的本地Git仓库和GitLab仓库之间的传输是通过SSH加密的,所以,需要以下设置:第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:$ ssh-keygen -t rsa -

2021-07-28 15:41:46 1516

转载 Category、load 、initialize

1、category中有load方法吗? load方法什么时候调用的? load方法能继承吗?1、category有load方法2、load方法在runtime类、分类加载的时候调用且只调用一次3、load是可以继承的 一般情况我们不会去主动调用load方法2、Load与initialize的区别是什么? 他们在category中的调用顺序?出现继承是他们的调用过程?调用时机不同load方法在runtime类、分类加载的时候调用且只调用一次 如果出现继承时 在调用子类的lo

2021-07-15 10:17:11 165

原创 iOS网络优化

优化清单DNS映射无论是HTTP还是Socket长连接,第一步都是DNS解析。域名根据层级「主机名.次级域名.顶级域名.根域名」去解析,每一级缓存生命周期不同。在iOS设备上几乎每次断网重连,重启设备都会使DNS缓存失效,触发重新查询。这一步的优化对请求的延迟来说至关重要,具体优化手段可参考我之前一篇关于DNS映射的文章,配有可用的demo代码,这里就不复述了。请求压缩DNS查询之后是TCP握手建立连接,并发送请求数据。对于TCP来说,单个IP包大小受限于MSS值,大部分用户所处网络环境下每

2021-07-08 14:43:05 740

转载 runloop实践-加载高清大图

runloop在一次渲染中,需要渲染十几张高清大图,所以卡主了解决思路每次Runloop循环,只渲染一张大图!!1.监听Runloop的循环!!2.将加载大图的代码!放在一个数组里面!!3.每次Runloop循环,取出一个加载大图的任务执行!!解决步骤需要用到C语言的框架CFRunLoopRef。FRunLoopRef 是在 CoreFoundation 框架内的,它提供了纯 C 函数的 API,所有这些 API 都是线程安全的。NSRunLoop 是基于 CFRunLoo

2021-07-05 15:23:50 213

原创 git、gitee、github、gitlab 区别以及功能

Gitgit 是一种版本控制系统,是一个命令,是一种工具。我们用svn和git对比着来说,svn是集中式版本控制系统,而git是分布式版本控制系统。1、集中式版本控制系统是指版本库集中存放在一个中央服务器中,我们需要在自己电脑上通过连接中央服务器,从而把代码clone到本地,或者把自己电脑上的代码提交到中央服务器,如果中央服务器被炸毁了,那么所有的版本库都没了。在工作中,公司一般都有一个svn服务器,也就是版本控制系统,大家在自己电脑上通过TortoiseSVN客户端连接svn服务器,从而进行相

2021-06-30 15:03:50 12798 3

转载 iOS 组件化搭建私有库(二)

1.搭建私有库之前必须要先创建索引库1)首先检查当前电脑的索引库pod repo2)在gitlab上创建一个新的库,这个库用来保存私有库的podspec文件,所以我们一般起名字最好是 xxxSpec用以区分这个库的作用。3) 创建本地索引库,然后将其于刚才创建的远程索引库相关联,注意!!!此时的远程索引库是空的!空的!空的!但是必须得有master分支,所以你可以添加一个readme文件。pod repo add XXXSpec 刚才创建的远程索引库的gitlab的地址2.开始创

2021-06-30 14:52:46 452

原创 iOS组件化开发 CocoaPods拆分项目

私有Spec Repo所谓Spec Repo,就是Pods的索引。一旦在podfile中设置source为某个私有repo的git地址,在进行pod update的时候就会去这个repo中进行检索,如果检索到对应的pod,会读取该Pod的podspec从而进行安装。 一个Spec Repo的目录结构如下:Spec Repo 目录之后我们去Github上新建一个相应的Repo地址,之后添加repo到本地。# pod repo add [Private Repo Name] [GitHub

2021-06-30 14:11:26 169

转载 GCD中判断线程内容执行完毕

一:信号量信号量是一个整形值并且具有一个初始计数值,并且支持两个操作:信号通知和等待。当一个信号量被信号通知,其计数会被增加。当一个线程在一个信号量上等待时,线程会被阻塞(如果有必要的话),直至计数器大于零,然后线程会减少这个计数。在GCD中有三个函数是semaphore的操作,分别是:dispatch_semaphore_create   创建一个semaphoredispatch_semaphore_signal   发送一个信号dispatch_semaphore_wait    等待信

2021-06-29 10:33:54 307

原创 iOS 使用webView实现图文混排

1,第一种 添加加载webview的视图-(void) loadMyWebView{ NSString *title=@"韩寒《后会无期》奇葩的吸金3秘籍"; NSString *linkStr=[NSString stringWithFormat:@"<a href='%@'>我的博客</a> <a href='%@'>原文</a>",@"http://blog.csdn.net/wildcatlele",@"http://jincuod

2021-06-28 15:32:40 234

转载 iOS webview保存图片

首先是给UiWebView加一个长按手势。UILongPressGestureRecognizer* longPressed = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressed:)];longPressed.delegate = self;[self.webView addGestureRecognizer:longPressed];接着在手势响应方法里面实现相应

2021-06-28 10:40:51 623

原创 KVC 使用场景

1、动态设值和取值 常用的可以通过setValue:forKey:和valueForKey: 也可以通过路由的方式setValue:forKeyPath:和valueForKeyPath: 2、通过KVC访问和修改私有变量在日常开发中,对于类的私有属性,在外部定义的对象,是无法直接访问私有属性的,但是对于KVC而言,一个对象没有自己的隐私,所以可以通过KVC修改和访问任何私有属性3、多值操作(model和字典互转)model和字典的转换可以通过下面两个KVC的API实...

2021-06-26 10:26:52 266

原创 如何确定所有的异步请求都完成

有a、b、c、d 4个异步请求,如何判断a、b、c、d都完成执行?如果需要a、b、c、d顺序执行,该如何实现?对于这四个异步请求,要判断都执行完成最简单的方式就是通过GCD的group来实现: dispatch_queue_tqueue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); dispatch_group_tgroup=dispatch...

2021-06-21 16:29:32 1174

转载 tableviewcell划走了图片显示吗

写在最前面大家都很忙, 如果你没时间看下面一长串的文字, 这里我尽量长话短说, 希望能节约一些你的时间前提知识1 每一个UIView+WebCache 都有一个operationDictionary 里面装的是 @{你当前的类名 : Operation}.2 Operation直接影响图片能否被显示.每次有新的加载任务时都会检查这个字典, key相同则移除Operation, 再添加新的Operation, 下载完成后会移除Operation.下面以tableViewcell 为例1...

2021-06-21 14:35:39 99

转载 Git与SVN区别,各自优缺点

Git优点:1、分布式,每个参与开发的人的电脑上都有一个完整的仓库,不担心硬盘出问题;2、在不联网的情况下,照样可以提交到本地仓库,可以查看以往的所有log,等到有网的时候,push到远程即可;3、非常强大的分支管理功能。4、Git的内容的完整性要优于SVN: GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。Git缺点:权限管理不是很方便,需要安装插件gitolite,配置有点麻烦,或者直接使用gitlab管理。...

2021-06-18 11:54:22 156

原创 上架appstore移除模拟器第三方包

为了方便开发者调试,我们使用lipo工具合并了模拟器和真机的架构。所以在上传前AppStore前,必须使用lipo移除模拟器的架构,否则会报错:ERROR ITMS-90087: "Unsupported Architectures. The executable for MyFirst.app/Frameworks/WoyunWebSdk.framework contains unsupported architectures '[x86_64, i386]'."//静态库 路径下直接查看支.

2021-06-18 11:29:57 589

原创 IOS 消息传递与消息转发

Method的结构体/// Methodstruct objc_method { SEL method_name; char *method_types; IMP method_imp;};方法名 method_name 类型为 SEL,前面提到过相同名字的方法即使在不同类中定义,它们的方法选择器也相同。 方法类型 method_types 是个 char 指针,其实存储着方法的参数类型和返回值类型,即是 Type Encoding 编码。(即类型编码) .

2021-06-15 11:10:49 257 2

原创 Objective-C消息转发的理解

我们要通过一个小例子来简单、通俗的理解一下什么是消息转发以及如何消息转发,希望看完这篇文章时大家会彻底的明白OC的消息。首先,你需要知道这两个概念:OC中调用方法就是向对象发送消息。比如 :[personrun];这实际上这是在给person这个对象发送run这个消息。那么问题来了,当run这个方法只有定义没有实现会怎么样呢?就是经典的报错***Terminatingappduetouncaughtexception'NSInvalidArgumentExce...

2021-06-10 17:12:18 124

空空如也

空空如也

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

TA关注的人

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