自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Pandakingli的博客

同行十二年,不知木兰是女郎。

  • 博客(319)
  • 资源 (4)
  • 收藏
  • 关注

原创 iOS-EKEventEditViewController踩坑记录

一、EKEventEditViewController是什么?EKEventEditViewController是添加日历事件的一个ViewController通过设置event,然后push到这个VC 就展示出来这个事件的便捷页面。二、部分iOS系统上的问题stackoverflow上这个问题的解决方案在iOS12.2.0–13.3beta版本中,这个问题一直存在,直到13.3beta苹果才修复了这个问题。三、解决方案一,使用继承stackoverflow上这个问题的解决方案继承EKE

2020-09-30 15:44:25 570

原创 iOS-WKWebView取消自动选中灰色背景

在IOS中WKWebView有些地方tap点击会有一个灰色背景图层出现,会让用户感觉是个bug.-webkit-tap-highlight-color这个属性只用于iOS (iPhone和iPad)。当你点击一个链接或者通过Javascript定义的可点击元素的时候,它就会出现一个半透明的灰色背景。要重设这个表现,你可以设置-webkit-tap-highlight-color为任何颜色。想要禁用这个高亮,设置颜色的alpha值为0即可。示例://设置高亮色为50%透明的红色:-webkit-ta

2020-06-06 16:03:10 751

原创 解决CocoaPods/Specs下载缓慢的问题

每次在更新CocoaPods的Specs时候都会特别慢,很容易失败。cocoapods 的 sepcs 文件是放在 ~/.cocoapods/repos目录git clone https://github.com/CocoaPods/Specs.git master其实无需全部 clone 下来,可以只 clone 最近一个 commit 的全部代码就可以。终端执行:git clone --depth=1 https://github.com/CocoaPods/Specs.git maste

2020-05-14 22:19:43 1902

原创 iOS开发-EXC_BAD_ACCESS崩溃的本质

1.野指针的危害我们知道在OC中向nil指针发送消息是不会导致崩溃的。但是我们向一个已经标记删除的内存地址发送消息就很容易出现问题。就像是绿灯的时候过马路是安全的,但是闯红灯就很容易出事故,但是并不是每次闯红灯都会出现事故,所以这类的野指针问题比较难查找和复现。2.如何定位野指针问题2.1 使用Xcode僵尸模式 ( NSZombieEnabled )Product -> Sch...

2020-04-21 13:34:03 2469 1

原创 iOS -dispatch_sync阻塞的是线程还是队列?

1.几个概念1.1 进程–独立运转的公司在iOS 中 一个进程就是一个正在运行的一个应用程序;  比如 QQ.app  ,而且一个App只能有一个进程不像安卓支持多个进程。进程就像一个独立运转的公司一样,有自己的车间(内存空间)和库房(磁盘空间),有保安进行保护(别的App(进程)是不允许随意访问的)。1.1线程–车间里的工人线程是执行任务的,也就是干活的工...

2020-04-13 14:26:23 658 1

原创 修复错误java version is not 1.8.x

1.问题系统:macOS Catalina 10.15.3 (19D76)时间:2020.02.29在执行脚本的时候,系统报错如下:java version is not 1.8.x2.解决方案2.1下载jdkjdk下载地址-oracle官方2.2 按照指示进行安装下载完成以后,双击运行下载下来的.dmg文件,进行傻瓜式next点击进行安装。2.3 检查Java环境变量在终...

2020-02-29 18:36:42 1006

原创 Git创建一个空的分支

1.创建一个空白的分支的需求在Git中创建分支,是必须有一个父节点的,也就是说必须在已有的分支上来创建新的分支,如果工程已经进行了一段时间,这个时候是无法创建空分支的。但是有时候就是需要创建一个空白的分支。2.解决方法:2.1 使用 git checkout的--orphan参数:git checkout --orphan emptybranch该命令会生成一个叫emptybranch...

2020-02-04 10:47:56 5309

原创 Swift和Objective-C相互调用

1.Swift调用ObjectiveC1.1创建OC类//testObject.h文件#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGIN@interface testObject : NSObject-(void)seyHello;@endNS_ASSUME_NONNULL_END//testO...

2020-01-09 16:20:36 1546

原创 git制作镜像库

1、镜像一个三方库Github的访问有时候会很慢。这种情况下针对一些常用的在Github上的开源的第三方项目,有必要在本地保存一份镜像,方便内网的用户抓取。Github duplicating-a-repository教程以xxxlib为例,首先创建一个本地的clonegit clone --mirror https://github.com/xxxlib.git然后设定镜像仓库的地址...

2019-12-27 17:21:36 1337

原创 iOS项目引入ReactiveCocoa

1.ReactiveCocoa 5.0以后将 RAC 拆分为四个库ReactiveCocoa github地址序号库适用范围1ReactiveCocoa纯Swift项目直接依赖2ReactiveObjC纯OC项目直接依赖3ReactiveSwiftOC和Swift混编时要依赖4ReactiveObjCBridgeOC和Swift混编时要...

2019-11-19 20:06:04 441

原创 什么是函数式编程?

通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。而函数式编程(注意多了一个“式”字)–Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算。首先要搞明白计算机(Computer)和计算(Compute)的概念。在计算机Compu...

2019-11-15 13:59:08 480

原创 什么是响应式编程(Reactive Programming)

1.什么是响应式编程(Reactive Programming)Wikipedia上这样说:In computing, reactive programming is an asynchronous programming paradigm concerned with data streams and the propagation of change. This means that ...

2019-11-15 13:25:59 1074

原创 Xcode运行报错: [Process] kill() returned unexpected error 1

更新到了新系统:MacOSX 10.15.1 CatalinaXcode 11.2.1但是一开始调试程序,日志窗口就不停的打log [Process] kill() returned unexpected error 1解决方案:1- Xcode menu 打开: Product > Scheme > Edit Scheme2- 在 Environment Variabl...

2019-11-15 12:07:49 14243

原创 解决fatal: unable to access 'https://github.com/homebrew/brew/':

fatal: unable to access 'https://github.com/homebrew/brew/':更新了新的系统,安装homebrew的时候老失败。解决方案:git config --global --unset http.proxy git config --global --unset https.proxy...

2019-11-02 23:06:38 11607

原创 解决报错 Unexpected end of JSON input while parsing near '...":{},"_hasShrinkwrap

npm install出现”Unexpected end of JSON input while parsing near”的错误。运行 npm cache clean --force

2019-10-26 13:08:11 774

原创 iOS 唤起相机session startRunning导致卡顿

1.苹果官方文档说明- (void)startRunning;DiscussionThis method is used to start the flow of data from the inputs to the outputs connected to the AVCaptureSession instance that is the receiver. Thi...

2019-10-23 22:31:10 5993 1

原创 OCLint生成报告报错oclint: error: cannot open report output file

OCLint生成报告报错oclint: error: cannot open report output fileoclint: error: cannot open report output file xxxpath解决方案:使用 ">> oclint_result.html" 代替 '-o oclint_result.html'比如:oclint-json-compi...

2019-09-30 15:04:29 1067

原创 macOS下报错-bash: flutter: command not found解决

-bash: flutter: command not found第一步:open ~/.bash_profile如果报错:.bash_profile does not exist.执行:在根目录下touch .bash_profile第二步:编辑bash_profile文件添加export PATH=[flutter路径]/bin:$PATH可以直接编辑或者使用命令打开:sudo ...

2019-09-18 23:00:26 4360

原创 机器码(machine code)和字节码(byte code)是什么?

1、机器码(machine code)机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据(计算机只认识0和1)。通常意义上来理解的话,机器码就是计算机可以直接执行,并且执行速度最快的代码。用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的...

2019-09-17 17:14:22 20257 2

原创 Git多账户切换配置

1、手动切换gitlab和github项目切换时, github上多个项目账户不同时,都需要切换用户。git config --global user.email [xx的[email protected]]git config --global user.name [xx的name]但是这个方法需要来回切换,比较麻烦。2、每个项目设置单独的user.name 和 user.email可以...

2019-08-06 01:06:58 3773

原创 xcrun: error: unable to find utility "simctl" 错误解决方案

- ERROR | [iOS] unknown: Encountered an unknown error (/usr/bin/xcrun simctl list -j devicesxcrun: error: unable to find utility "simctl", not a developer tool or in PATH) during validation.错误的原因...

2019-07-29 11:16:28 1404

原创 iOS开发-使用多线程同步锁@synchronized()的注意事项

1.@synchronized原理synchronized中传入的object的内存地址,被用作key,通过hash map对应的一个系统维护的递归锁。所以不管是传入什么类型的object,只要是有内存地址,就能启动同步代码块的效果。2.注意事项synchronized是使用的递归mutex来做同步。 NSObject *obj = [[NSObject alloc]init]; ...

2019-07-15 18:07:01 961

原创 iOS开发-多线程多任务的依赖的解决方案

在多线程开发中往往会遇到多个任务并发,但是还有任务之间具有依赖关系,比如下图:使用NSOperationQueue要比GCD方便一些,代码更简洁。1. 使用NSOperationQueue设置依赖- (void)testOperation { NSLog(@"开始----%@",[NSThread currentThread]); NSOperationQueue *que...

2019-07-15 17:33:10 821

原创 iOS开发-ViewController中View的生命周期和如何替换ViewController中默认的View

1、替换ViewController中默认的View- (void)loadView{ //不要调 super self.view = [[CustomView alloc] init];}2、单个ViewController的生命周期(ARC环境)initWithCoder:(NSCoder *)aDecoder:(storyboard/xib)loadView:加...

2019-07-12 14:20:18 1208

原创 iOS开发-对象什么时候dealloc?dealloc发生在哪个线程?

1、对象什么时候dealloc?当对象的引用计数减为0时候。2、dealloc发生在哪个线程?#import "ViewController.h"@interface classTest : NSObject@end@implementation classTest- (void)dealloc{ NSThread *currentThread = [NS...

2019-07-11 11:26:55 2211

原创 iOS开发-遍历并修改数组遇到的问题

一、使用for-in-(void)test_forin{ NSMutableArray *array = [[NSMutableArray alloc] initWithArray:@[@"10", @"20", @"30", @"40", @"50"]]; for (NSString *str in array) { if ([str...

2019-07-08 17:25:54 2280

原创 Objective-C中的值传递和引用传递

值传递::Pass By Value引用传递:Pass By Reference一、C语言中的参数传递1、传值形参和实参占不同内存单元,传递的实际上是实参变量或表达式的一个拷贝副本。形参的值发生变化也不会传回给实参,是单向传递。 void increase(int x) { x++; }2、传地址传递的是实参变量地址的拷贝值,而不是实参变量的值,在被调函数中对地址所指对象...

2019-07-08 16:47:25 2540 2

原创 iOS多线程面试题-启动三个线程A,B,C,打印10次 按照ABC的顺序输出(异步转同步)

题目:启动三个线程A,B,C,打印10次 按照ABC的顺序输出1. OC 使用NSLock NSLock *lockA = [[NSLock alloc] init]; NSLock *lockB = [[NSLock alloc] init]; NSLock *lockC = [[NSLock alloc] init]; [lockB lock];...

2019-06-20 01:43:27 1008

原创 Flutter Textfield长按报错修复:NosuchMethodError: The getter 'pasterButtonLabel' was called on null.

1、问题现象iOS端在长按Textfield唤起粘贴复制的时候会报错。如图所示:2、解决方案主要原因是Cupertino缺少了对应的非英文版本的支持。增加代码import 'package:flutter/cupertino.dart';import 'package:flutter/foundation.dart';import 'package:flutter/materia...

2019-06-18 14:40:35 3119

原创 ipa上传失败错误"The binary file XXX libswiftRemoteMirror.dylib is not permitted"解决

打包完上传到appstore时候报错ERROR ITMS-90171:Invalid Bundle Structure - The binary file XXX libswiftRemoteMirror.dylib is not permitted. Your app can’t contain standalone executables or libraries, other tha...

2019-05-29 11:11:38 633

原创 Flutter 警告 Wrong full snapshot version, expected '8f8xxx' found '48axxx'

Wrong full snapshot version, expected '8f8...' found '48a...' 执行以下下面的命令就可以了git clean -xffd

2019-05-29 10:55:07 1069

原创 Flutter 启动崩溃 VM snapshot must be valid 解决

VM snapshot must be validThe issue is that Xcode is trying to run a debug build, but there are leftover artifacts from the CLI release build (even when you clean, since Xcode doesn't clean CLI's b...

2019-05-29 10:50:18 708 1

原创 Flutter解决 警告 Waiting for another flutter command to release the startup lock

运行flutter的时候显示警告Waiting for another flutter command to release the startup lock当项目异常关闭,或者android studio用任务管理器强制关闭,下次启动就会出现上面的一行话,此时需要打开 flutter/bin/cache/lockfile,删除就行了或者直接用下面的命令:rm ./flutter/bin...

2019-05-29 10:47:11 255

原创 Mac下多个Xcode版本切换

有时候会遇到需要一些旧的版本Xcode的情况,这样电脑上就要安装多个Xcode。各个版本的Xocde下载地址首先需要安装Command Line ToolsCommand Line Tools , 下载与当前系统和安装的Xcode对应的Command Line Tools(其他版本的Xcode也在这里下载)1、显示当前使用的Xcodexcode-select -p//输出:Applic...

2019-05-16 11:39:21 4016

原创 Flutter开发- flutter的pub包管理

1、使用YAML管理第三方依赖包在原生开发中,Android使用Gradle来管理依赖,iOS用Cocoapods或Carthage来管理依赖。Flutter使用配置文件pubspec.yaml(位于项目根目录)来管理第三方依赖包。YAML是一种直观、可读性高并且容易被人类阅读的文件格式,它和xml或Json相比,它语法简单并非常容易解析,所以YAML常用于配置文件,Flutter也是用yam...

2019-05-14 18:56:55 4194 4

原创 Flutter开发-使用命令创建Flutter App/Module/Plugin/Package

Flutter四种工程类型1. Flutter Application (全新的APP)标准的Flutter App工程,包含标准的Dart层与Native平台层创建命令flutter create xxapp//默认Android使用Java,iOS使用Objective-C。//如果要指定语言,比如安卓使用Kotlin,iOS使用Swiftflutter create -i sw...

2019-05-14 17:01:16 5227

原创 解决SourceTree卡顿问题

最近使用SourceTree,发现打开或者提交代码的时候很容易就卡死,让人很抓狂。但是平时用SourceTree比较多,所以研究了下,发现是SourceTree每次启动都会读取package-lock.json文件,造成卡顿。解决方法也很简单,就是不去读取这个文件,这样SourceTree就比较流畅了。...

2019-05-05 10:39:05 5766

原创 Flutter Dart 报错 '_InternalLinkedHashMap dynamic, dynamic' is not a subtype of type'

'_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Map<String, dynamic>'使用如下转换就可以了new Map<String, dynamic>.from(params)

2019-04-20 02:53:56 38685

原创 iOS开发-Masonry约束宽高比

先看看Masonry的源代码,可以发现两个属性这两个属性可以设置视图中的宽高比例使用multipliedBy必须是对同一个控件本身,比如,上面的代码中,我们都是对bottomInnerView.mas_width本身的,如果修改成相对于其它控件,会出问题。//multipler属性表示约束值为约束对象的乘因数- (MASConstraint * (^)(CGFloat multiplier...

2019-04-11 15:20:31 4656

原创 Flutter开发-iOS报错Trying to embed a platform view but the PrerollContext does not support embedding 的修复

Trying to embed a platform view but the PrerollContext does not support embedding解决方法:Currently apps need to opt-in for the UIViews embedding preview on iOS by adding a boolean property to the Info...

2019-03-19 14:36:54 2962 3

Xcode Instruments Help中文版

Instruments Help中文版

2018-09-21

组态王与51单片机ASCII通信

组态王与51单片机ASCII通信

2015-11-26

代码大全第二版中文版

代码大全第二版中文版

2015-11-26

C程序设计(第三版)谭浩强 真书扫描版本-清晰

C程序设计(第三版)谭浩强 真书扫描版本-清晰

2015-11-26

空空如也

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

TA关注的人

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