自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FantasyWind-奇风的悟道之地

格物致知,深入浅出,学以致用

  • 博客(58)
  • 收藏
  • 关注

原创 使用Dart/Flutter语言开发的命令行文字RPG类型小游戏

使用Dart/Flutter语言开发的命令行文字RPG类型小游戏项目源码:https://gitee.com/FantasyWind/word_game介绍项目背景本项目为使用Dart/Flutter语言开发的命令行文字RPG类型小游戏。该项目是为了学习Dart语法练习所用,功能比较简单;但本着快乐学习的理念,就弄成了一个RPG小游戏。游戏剧情游戏主体剧情为:主角[龙傲天]来到盖天村,听村民老爷爷说他孙女被后山恶魔抓取关了起来;所以去后山解救人质,但战斗过后发现打不过恶魔,于是求助村长,从村长

2020-08-02 21:52:36 800

原创 给Flutter包私有仓库pub_server增加企业微信机器人消息

这里写自定义目录标题给Flutter包私有仓库pub_server增加企业微信机器人消息功能说明代码分析相关类初始方案实现添加一个通用的拦截器中间件添加企业微信群机器人中间件可选择添加企业微信群机器人中间件完整代码地址使用方法待优化细节给Flutter包私有仓库pub_server增加企业微信机器人消息本文相关代码地址:github。效果:功能说明默认的私有仓库pub_server服务程序在package上传成功后只是在命令行中输出了一行成功日志,缺少必要的消息通知,包发布成功了开发人员也不知道

2021-07-30 17:59:56 668 1

原创 Flutter组件/插件开发及发布流程

Flutter组件/插件开发及发布一、组件和插件的区别组件-package: 只包含flutter功能的第三方包/子工程,纯dart开发。插件-plugin: 用来与原生进行交互,需要开发dart端代码和iOS/Android原生代码。二、组件开发流程1.创建package工程使用AndroidStudio中的Flutter Package工程模板或者命令行:flutter create -t package test_packagetest_package即package的名称。2.开

2021-04-09 15:20:24 1712

原创 Flutter Pub私有仓库搭建及使用

Flutter Pub私有仓库搭建目标将自己的package/plugin推到私有pub仓库中。关键步骤完成该目标有两个关键步骤需要处理:第一,部署pub_server服务端;第二,去除pub publish命令中的google权限校验。具体方法1.部署pub_server按照如下命令下载pub_server源代码,拉取依赖库后运行程序。git clone https://github.com/dart-archive/pub_server.git...cd pub_server/

2021-04-01 18:42:26 5835

原创 Flutter状态管理框架使用比较

Flutter状态管理框架使用比较在项目中使用了不同的框架完成同一功能Demo的状态管理,用来比较不同框架在状态管理中功能的异同点。功能包含了全局账户信息,登录页表单,修改用户信息页数据反显。项目源码:https://github.com/FantasyWind2016/state_manage_demos/框架介绍因为目前项目使用的Flutter版本是1.12.13,所以选择了合适的框架版本,而不是最新版本。普通模式全局状态使用EventBus同步状态;页面内手动setState。未进行页

2021-03-02 16:25:21 3950 4

原创 WKWebView调用evaluateJavaScript异步转同步返回的潜在问题

子线程中WKWebView调用evaluateJavaScript同步返回潜在问题业务背景UIWebView执行JS是同步返回,WKWebView执行JS是异步返回。这里通过死循环阻塞线程,以达到WKWebView执行JS同步返回的效果。当调用该代码片段的业务代码是在网络请求回调或者扫描二维码回调中时,就需要从子线程切换主线程。我遇到的情况就是在扫描二维码界面,需要切换主线程。出现问题但是当外部业务代码使用dispatch_async和dispatch_get_main_queue切换主线程执行

2021-02-21 17:50:40 4779

原创 Flutter状态管理框架GetX使用体验

Flutter状态管理框架GetX使用体验因为我们业务中使用的Flutter版本是1.12.13,对应的Dart版本为2.7,所以只使用了2.0.7版本的GetX包。GetX框架在搭页面时使用起来确实比较方便,可以比较方便的将逻辑代码和界面解耦,并不需要创建诸多的模板文件。不过这种灵活性也意味着标准不统一,团队协作时反而不太适合;在团队内使用,感觉还是需要搭配一个轻量化的结构化框架使用,比如BLoC。使用这个版本的GetX写了Demo之后,发现有几个问题:感觉不太像是稳定版本,存在一些比较明

2021-02-04 17:15:08 4384 1

原创 iOS9 WKWebView 释放时闪退

0.背景描述项目里发现,在iOS9系统上打开网页后关闭时,应用会闪退,调试得到日志:2019-12-18 18:25:37.931 xxx[18873:407888] *** -[XXWebViewController retain]: message sent to deallocated instance 0x7ffefd68a7401.问题查找依次排查了下页面中使用WKWebVie...

2019-12-18 18:32:40 950

原创 iOS问题记录本:UIWebView设置allowsInlineMediaPlayback为YES后无效,运行还是全屏播放视频

0.背景描述我遇到的问题并非是如标题所述,而是反过来。如官方文档所言,在iPhone上UIWebView的allowsInlineMediaPlayback参数默认为false,运行效果是网页视频播放时会显示全屏的播放器。如果不需要全屏播放,那么请将allowsInlineMediaPlayback设为true。我需要的正是如此,网页视频需要在页面直接播放的,而实际效果正是如此。但是奇怪的是...

2019-04-29 18:20:08 9172

原创 如何在微信小程序中下载APP?

如何在微信小程序中下载APP?可能的方案官方api接口;——目前小程序官方未提供专门下载APP的接口;小程序目前是不允许将流量导出到APP之外,所以合理推断,该方案短期内并不可行。通过web-view在小程序内打开网页,然后提供触发下载功能;——按网上的信息,在安卓系统中是可以直接下载APP的,但是iOS系统不行。实际上即便是在小程序之外,微信直接打开网页时,iOS系统也是无法直接下载AP...

2018-09-26 14:57:23 19055

原创 iOS问题记录本:应用启动时网络请求没有cookie

0.背景描述因为NSURLSession会自动处理cookie,所以日常开发时不需要特别的处理请求中的cookie。 但是上周项目开发新功能时发现,有时发送请求时提示会话失效,而且是几率性的,非必现。项目的服务端分为登录系统和业务系统,业务系统中部分用户需要使用登录会话信息中的token,token在cookie中是有保存的,当然也可以将token放在url后面传过去。 之前因为以为N...

2018-07-09 20:27:49 1611

原创 组件、插件、模块、子应用、库、框架等概念辨析

组件、插件、模块、子应用、库、框架等概念辨析网上有许多讲组件化、模块化等概念的文章,但大家一般都是将这两个概念混为一谈的,并没有加以区分。而且实际上许多人对于组件、插件、模块、子应用等概念的区别也不甚明了,甚至于许多博客文章专门解说这几个概念都有些谬误。 之前已经写了一篇文章专门对组件和模块两个概念进行辨析,现在我们对于更多的概念在更高的层次上进行辨析。 想分清这几个概念我觉得结合一下软件...

2018-06-12 18:53:55 9396 2

原创 iPhone/iPad苹果设备型号对应常用名称列表(2023更新至iPhone 15 Pro Max | iPad Air 5 | iPad10 | iPad Pro 12.9-inch 6)

iOS设备型号大全,iPhone,iPad

2018-06-06 09:59:24 359943 31

原创 2018年AppleDeveloper苹果开发者账号组织名称修改

申请流程登入 http://itunesconnect.apple.com;点击右下角的“联系我们(Contact Us)”;选择“会员资格与账户”;选择“组织名称更改”; 在当前页面你可以选择电话或者邮件的方式和苹果进行联系,两种方式都支持中文交流。注意事项因为涉及到账户主体信息修改,所以必须是账号的Agent进行操作;修改名称具体需要的资料苹果客服人员会直接跟你沟...

2018-06-05 11:03:38 15003

原创 Swift工程混编PgyUpdate升级SDK闪退问题

0.背景描述之前有一个小项目是用Swift开发的,因为是公司内部人员使用,所以只是使用企业证书签名,在蒲公英网站上进行发布。所以,升级功能也是直接使用的蒲公英官方的SDK——PgyUpdate。 上个月项目新增一个需求,改了埋点统计的字段,其他代码没动,但是开发完成后,新打的测试包却出现启动闪退的问题。1.问题查找1.1.定位经过初步调试排查,发现断点报错信息为: Thre...

2018-06-04 20:59:05 496

原创 iOS问题记录本:UITableView点击Cell的同时刷新数据导致闪退

0.背景描述项目中有一个功能显示列表数据,列表上有搜索框用来筛选列表中的数据。 两个月前上线后发现友盟错误统计中出现少量的空数组取数闪退。1.问题查找因为闪退是在UITableView的didSelectRow代码方法中产生的,但是我的业务代码在从数据array里取数前做了边界判断:if (indexPath.row<=self.dataArray.count-1)...

2018-05-30 22:00:03 1855

原创 iOS问题记录本:UIWebView可以打开不受信任的https网页,但是网页中的动态资源css/image无法加载

0.背景描述项目中在之前版本已经兼容了打开https网页的功能,但之前因为网页证书受信任,所以打开没有什么问题。 最近一次迭代中,发现有个功能打开的网页,网页没有加载样式,布局全部乱掉。1.问题查找1)定位原因通过safari开发模式查看网页,发现加载样式表和图片时提示:The certificate for this server is invalid. You m...

2018-05-30 21:19:02 2746

原创 [Objective-C学以致用]Method Swizzling

Method Swizzling还没有一个广泛接受的译名,我个人认为比较容易理解的一个是方法变换。简单的说,它就是在运行期修改类中方法所对应的实现的技术。 在本文中,我们就将方法变换的来龙去脉捋一遍。在捋这个来龙去脉的时候,我们需要把握住三个原则:格物致知,深入浅出,学以致用。 其中,格物致知是方法,深入浅出是成果,学以致用是目的。1.格物:明白其原理方法变换的技术基础在于Ob...

2018-03-13 11:17:12 370

原创 用自然语言讲清控制反转(IoC)和依赖注入(DI)

目的控制反转(Inversion of Control,简称IoC)和依赖注入(Dependency Injection,简称DI),是软件设计中的一种思想,并非特指具体的技术。那么既然只是思想,那么就可以不通过编程语言仍然可以将清楚。那么,本文将使用日常的自然语言,讲清IoC/DI。例子通过具体的例子是讲解思想的最好方法,所以我们就先通过具体的例子来进行下面的讲述。第

2018-02-05 22:09:18 430

原创 组件化开发和模块化开发概念辨析

组件化开发和模块化开发概念辨析网上有许多讲组件化开发、模块化开发的文章,但大家一般都是将这两个概念混为一谈的,并没有加以区分。而且实际上许多人对于组件、模块的区别也不甚明了,甚至于许多博客文章专门解说这几个概念都有些谬误。想分清这两个概念我觉得结合一下软件的渐进式开发场景更容易理解。但是下面的篇幅会比较长,所以我先说结论,不耐烦的同学可以先看:概念区别对比 类别

2018-01-29 00:57:06 31096 3

原创 iOS问题记录本:iOS8/Swift/WKWebView/address=0x0错误

iOS问题记录本:iOS8/Swift/WKWebView/address=0x0错误iOS问题记录本iOS8SwiftWKWebViewaddress0x0错误0背景描述1问题查找2原因分析3解决方案说明0、背景描述前一段时间,公司有个小的新项目,因为考虑到项目本身没有任何技术要求,所以决定采用Swift加上WKWebView的方案进行开发;而且前一段时间团队

2018-01-28 21:51:07 1052

原创 Permission denied (publickey).

问题描述jifengdeMacBook-Pro:MintGridView jifeng$ git push -u origin master Permission denied (publickey). fatal: Could not read from remote repository.Please make sure you have the correct access rights

2017-11-13 19:04:33 1163

原创 iOS11拍照闪退,保存图片闪退问题

问题描述最近测试人员反馈,升级iOS11系统的手机使用我们app的拍照功能时闪退。 经过一番查找,发现是下面代码导致的: UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);问题解决一开始以为是该函数的调用方法出现了变化,但是在不同的地方进行调用,或者传入不同的参数,都仍然会闪退;后来使用干净的demo工程进行调试,发现闪退时会出现这样一

2017-10-23 21:36:54 9369 1

原创 UITableView reloadData后,cellForRowAtIndex方法未调用问题

问题描述tableView刷新后,cellForRowAtIndex方法并未被调用,所以cell内容实际未刷新。问题解决搞了一个小时,终于查到一个相同的问题: tableView调用reloadData不刷新, cellForRowAtIndexPath方法不走问题原因出现这个问题的原因应该是UITableView初始化时,frame的height太小,即便之后在其他方法里改回来,也会导致这个问题

2017-03-21 17:03:20 2936

原创 ViewController创建后释放闪退

问题描述在做项目时遇到一个闪退问题,查看代码逻辑发现以下代码会造成crash。- (IBAction)buttonTouchUpInside:(id)sender { TestTableViewController *vc = [[TestTableViewController alloc]init];}是的,你没有看错,上面的代码会造成闪退,TestTableViewController

2017-02-18 18:17:29 1246

原创 CocoaPods私有仓库获取不到最新版本的pod

pod已经推送到了CocoaPods私有仓库,且本地手动添加的私有仓库已更新,但工程中使用的pod还是老版本。检查会发现本地/.cocoapods/repos目录中会有多个私有仓库的文件夹。

2017-01-12 11:22:57 5328

原创 CocoaPods使用相关

本文是使用CocoaPods进行组件管理的相关资源集合。

2017-01-05 09:58:24 404

原创 setObjectForKey: object cannot be nil (key: UIImagePickerControllerOriginalImage)

开闪光灯,拍照同时锁屏,问题重现。

2016-11-11 11:58:59 4517

原创 [CocoaPod]基于私有仓库的pod创建问题

问题列表pod spec lint命令,校验pod的代码和配置时是从git上拉取的代码进行编译;所以如果未创建git,会报以下错误:

2016-09-21 22:22:26 19779

原创 [JSPatch使用]OC转JS问题列表

最近开始用JSPatch修复线上的bug,但是使用过程中(其实主要是指OC代码转换成JS代码的过程中)遇到了一些问题,特此记录下来作为自己的备忘录,同时也希望能帮助一些人。

2016-09-19 20:11:05 1980

原创 archive包真机运行崩溃问题一则

archive包真机运行崩溃问题一则

2016-06-25 14:27:43 1066

原创 使用LaunchScreen.storyboard后,运行时显示老的图片

设置LaunchScreen.storyboard后,运行时显示老的图片

2016-06-22 14:45:25 12768

原创 使用白色箭头图片设置UINavigationBar的leftBarButtonItem,但显示为蓝色

使用白色箭头图片设置UINavigationBar的leftBarButtonItem,但显示为蓝色

2016-06-22 14:44:25 4680

原创 UIButton设置图片后显示的图片不使用@3x规格

问题描述项目中APP有个大的图片按钮,开始直接用UIButton设置图片进行显示。但是使用了产品化给的切图后,发现按钮中的图片很小,在6p中的大小明显不是@3x格式的。之后尝试了各种方法设置UIButton的frame,UIButton中imageView的frame。但都没有效果。最后发现UIButton中imageView的frame大小固定为image的point大小(像素数值,不是分辨率),

2016-06-22 14:42:22 995

原创 SourceTree for Mac克隆GitHub仓库问题

1.克隆仓库时出现“Could not resolve host: github.com”错误。 解决方案: vim /etc/resolv.conf,增加nameserver 8.8.8.8或者nameserver 114.114.114.114即可 参考链接: https://segmentfault.com/q/1010000000465902

2016-05-09 09:50:16 3150

原创 ios图片处理相关问题

1.大图片不要使用imageNamed:方法,避免对象在内存中常住; 2.使用文件名和文件类型查询文件路径时,图片文件其实无法找到,因为一般图片为了适配会有@2x/@3x等不同规格,无法直接找到; 3.缓存文件时最好是在子线程中进行; 4.block中的使用的对象不需要__block进行修饰,否则block执行完毕后该对象会被释放;

2016-05-05 18:56:07 380

原创 [设计模式学以致用]备忘录模式

对于备忘录模式,有几个点需要注意:不破坏封闭对象的内部状态在该对象之外这三个要点是从备忘录模式的定义中提炼出来的,但如果要更容易的理解,应该把它们的顺序颠倒一下。如下:在该对象之外对象的内部状态不破坏封闭

2016-04-25 18:26:09 625

转载 iOS开发中CALayer的详细使用说明

在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画、关键帧动画、动画组、转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等。在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单:C

2016-01-31 17:17:45 1379

原创 iOS真机调试时“process launch failed: timed out waiting for app to launch”问题

背景:这几天做一个DEMO,因为需要用到定位功能,所以需要真机调试。于是就把BundleID改成以前用的,然后选上了开发证书进行真机调试。可是每次运行都无法成功,总是报错:“process launch failed: timed out waiting for app to launch”。解决:用百度搜了一下这个错误,大部分的回答都是在“Product - scheme - e

2016-01-21 17:22:24 8390 2

原创 [iOS9][Xcode7]图片base64上传到服务器后,服务器上的图片损坏问题

背景:正在做一个项目,商品维护功能中需要将商品拍照,图片上传到服务器。问题描述:RT;拍照获得的图片在手机上显示正常,但服务器上的图片文件有大小,可无法打开,显示损坏。解决过程:1、一开始怀疑是框架中的拍照sdk返回的NSData有误,然后用UIImage对象自己生成NSData上传,仍然有问题;2、怀疑base64规则和服务端的不一致;图片数据base64编码是使用官方sdk

2015-11-06 10:31:42 3720 3

空空如也

空空如也

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

TA关注的人

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