![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
个人所得
文章平均质量分 56
shengkuiwang
这个作者很懒,什么都没留下…
展开
-
iOS_IAP掉单及处理办法
iap掉单以及处理方法原创 2023-02-23 16:21:41 · 1830 阅读 · 0 评论 -
iOS_苹果内购详细步骤
苹果内购原创 2023-02-23 16:05:20 · 9498 阅读 · 1 评论 -
HTTP2.0特性
HTTP2.0特性原创 2023-02-22 21:05:46 · 548 阅读 · 0 评论 -
iOS_组件化_pod
iOS组件化简要流程和相关指令原创 2023-02-16 19:28:53 · 513 阅读 · 2 评论 -
Flutter_Library not loaded: @rpath/App.framework/App
问题描述更新了FlutterSDK,模拟器运行无问题,真机运行崩溃报错结果如下:dyld[15588]: Library not loaded: @rpath/App.framework/App Referenced from: /private/var/containers/Bundle/Application/42B64C9D-DDC4-4DF3-9287-068E4EE2EBDB/Merchant.app/Merchant Reason: tried: '/usr/lib/sw原创 2022-03-25 10:34:29 · 11862 阅读 · 0 评论 -
iOS_dispatch_semaphore 相关代码
目录`dispatch_semaphore_create`代码`dispatch_semaphore_wait`代码`dispatch_semaphore_signal`代码相关的一些宏定义dispatch_semaphore_create代码 信号量创建dispatch_semaphore_tdispatch_semaphore_create(long value){ dispatch_semaphore_t dsema; // If the internal value is原创 2022-02-12 17:01:22 · 1271 阅读 · 0 评论 -
iOS_dispatch_sync同步实现/死锁
dispatch_sync实现/死锁`dispatch_sync`方法实现调用`dispatch_barrier_sync`代码块`_dispatch_barrier_sync_f_inline`代码块`_dispatch_queue_try_acquire_barrier_sync`代码块`_dispatch_queue_try_acquire_barrier_sync_and_suspend`代码块`_dispatch_sync_f_slow`代码块`__DISPATCH_WAIT_FOR_QUEUE_原创 2022-01-09 15:33:07 · 1718 阅读 · 0 评论 -
Xcode_Xcode13_shell指令_framework生成以及合并
新增TARGET点击工程内TRTGETS区域的左下角+按钮,然后会弹出以下选择框,选中图示图标,并点击Next生成一个新的TARGET新增RunScript选中上一步生成TARGET,选择Build Phases,点击+,新增RunScript复制以下指令到RunScript,并修改FMK_NAME# 设置工作Target以及生成的framework文件名,这个必须根据target来修改FMK_NAME=WSKFramework# 生成framework临时工作区域WRK..原创 2021-12-23 16:47:53 · 2008 阅读 · 0 评论 -
iOS_MethodSwizzling_黑魔法坑点与解决方案
坑点1:多次进行方法交换,会将方法替换为原来的实现解决方法:利用单利进行限制,只进行一次方法交换// 解决坑点1+ (void)load{ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ [RuntimeTool wsk_methodSwizzlingWithClass:self oriSEL:@selector(wsk_oriFunction) swizzledSEL:@selec原创 2021-11-27 17:24:08 · 1787 阅读 · 0 评论 -
Swift_代码混淆
1. 新建相关文件新建文件confuse.sh和func.list创建文件方式如下:$ cd ~/Desktop/ceshi$ touch confuse.sh$ touch func.list最终结果如下:2. 导入文件至项目将创建的confuse.sh文件以及func.list文件导入项目最终结果如下3. 修改项目配置3.1 修改TARGETS配置如果没有RunScript。请点击红框内+进行新增RunScript内输入的文本$PROJECT_DIR/confuse.原创 2021-11-24 16:42:25 · 2716 阅读 · 0 评论 -
iOS_cache_t
目录方法缓存`cache_t`部分代码`cache_t`的结构`bucket_t`的结构代码`bucket_t`查找缓存`cache_t::expand()``cache_t::reallocate()``cache_fill_nolock`方法缓存cache_t在方法被调用后,cache_t会进行一次缓存缓存流程< cache_fill_nolock 代码流程>1、缓存入口cache_fill_nolock 进入,判断是否存在缓存,如果有,则return2、如果不存在缓存,原创 2021-10-30 17:04:55 · 1370 阅读 · 0 评论 -
iOS_类<Class>
目录类的结构属性、实例方法、协议以及类方法存储相关结构体代码实现`class_rw_t`代码实现`class_ro_t`代码实现`method_array_t`代码实现`property_array_t`代码实现`protocol_array_t`代码实现`list_array_tt`代码实现类的结构类Class是一个objc_class *类型的结构体指针 ,typedef struct objc_class *Class结构体objc_class继承自结构体objc_objectstrcut原创 2021-10-24 17:55:22 · 138 阅读 · 0 评论 -
Xcode_xcode_13.0导入第三方组件Kingfisher报错解决
在Debug模式下运行无错误、当切换为Release模式进行打包是会进行报错报错提示大致如下,截取其中一段,均是由于SwiftUI导致~/Merchant/Pods/Kingfisher/Sources/SwiftUI/ImageBinder.swift:51:23: error: cannot find type 'Binding' in scope var isLoaded: Binding<Bool> ^~~~~~~~/.原创 2021-10-22 13:50:48 · 5843 阅读 · 2 评论 -
Swift_base64转化为Data_URL转化为Data
base64字符串转化为Data// base64 -> Data?let oldString = "base64字符串"let base64String: String = oldString.replacingOccurrences(of: "data:image/png;base64,", with: "")let base64EncodedData: Data? = Data(base64Encoded: base64String, options: Data.Base64Deco.原创 2021-10-20 20:07:03 · 1483 阅读 · 0 评论 -
Flutter_flutter2.0_填坑
替换项目旧新MediaQuery.of(context,nullOk: true);.of(context);BuildContextancestorStateOfTypefindAncestorStateOfTypeBuildContextancestorRenderObjectOfTypefindAncestorRenderObjectOfTypeBuildContextinheritFromWidgetOfExactTypedependOn.原创 2021-05-08 14:09:40 · 1857 阅读 · 1 评论 -
Swift_WKWebView循环引用问题解决方法
1、创建一个新类WSKWeakScriptMessageDelegate代码示例如下:import UIKitimport WebKitclass WSKWeakScriptMessageDelegate: NSObject,WKScriptMessageHandler { weak var scriptDelegate:WKScriptMessageHandler! init (scriptDelegate:WKScriptMessageHandler) { su原创 2020-12-07 09:19:56 · 501 阅读 · 0 评论 -
iOS_计步_获取运动与健康
iOS获取本机的运动数据,一般是通过HealthKit或者运动与健康。获取HealthKit内的数据,需要修改证书,同时HealthKit内的数据源也来自于运动与健康。下面简单介绍运动与健康的调用代码记得添加隐私权限<key>NSMotionUsageDescription</key> <string>隐私权限</string>1、...原创 2020-03-24 16:26:00 · 976 阅读 · 0 评论 -
iOS_XIB绘制UIScrollerView出现偏移一个状态栏高度
问题出现情况:1、无导航条,且全屏是一个滚动视图2、在利用xib绘制UIScrollerView时,且去除了安全区域,页面总是出现偏移一个状态栏高度。问题解决方式:1、代码if (@available(iOS 11.0,*)) { self.backScrollView.contentInsetAdjustmentBehavior = UIScrollViewContentIns...原创 2020-03-10 16:11:33 · 600 阅读 · 0 评论 -
iOS_XIB绘制边框颜色
1、打开xib文件,选择需要添加边框的视图控件,效果如图所示2、点击上图“+”号,添加属性// 圆角layer.masksToBoundslayer.cornerRadius// 边框layer.borderWidthlayer.borderColorFromUIColor3、添加完这些你会发现边框颜色并没有显示,还需要添加一些关于CALayer的延展文件,代码如下:@int...原创 2019-10-25 15:57:36 · 454 阅读 · 0 评论 -
iPhone屏幕录制
为了展示业务逻辑、需要对软件的操作流程进行录制。 硬件:MAC、iPhone手机 软件:MAC上需要QuickTime Player原创 2017-07-25 16:50:08 · 1053 阅读 · 0 评论 -
mac_系统升级至macOS Mojave无法pod问题解决方案
打开Xcode偏好设置,如图所示操作原创 2019-04-23 16:53:58 · 401 阅读 · 0 评论 -
iOS_WKWebView_原生与JS的交互_可以立刻获取原生返回值
WKWebView系统自带API参考:https://blog.csdn.net/baihuaxiu123/article/details/51286109使用第三方框架WebViewJavascriptBridge,链接内有详细的使用介绍WebViewJavascriptBridge以上交互方式都是异步的,JS无法立刻获取原生返回值。现在介绍如何立刻获取原生返回值3.1、遵循对应的协...原创 2019-08-06 15:26:25 · 3445 阅读 · 2 评论 -
iOS_UIWebView加载Html乱码文件
现象:使用WKWebView加载乱码Html文件,可以显示出来,但是页面显示字体比较小,不符合预期的效果,换用UIWebView对乱码Html文件进行加载,但是由于是乱码文件,直接进行文件加载,显示出来的效果是乱码。结果方案如下UIWebView *view = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, BXScreenW, BXScre...原创 2019-09-19 18:26:13 · 610 阅读 · 0 评论 -
ionic_报错Android Studio gradle Received status code 400 from server: Bad Request Could not get resour
ionic报错信息:Android Studio gradle Received status code 400 from server: Bad Request Could not get resource 'https://jcenter.bintray.com/me/tatarka/gradle-retrolambda/3.7.0/gradle-retrolambda-3.7.0.jar'...原创 2018-11-13 15:45:46 · 361 阅读 · 0 评论 -
ionic3_ion-slide报错Uncaught TypeError: Cannot read property 'hasAttribute' of undefined
在使用ion-slide时报错Uncaught TypeError: Cannot read property 'hasAttribute' of undefined,经检查发现是由于数组数据没有值的原因造成的。解决方法:1、为数组数据赋死值。2、对数组数据的长度进行判断,进而隐藏或显示ion-slide。...原创 2018-10-15 17:03:29 · 1009 阅读 · 2 评论 -
Xcode8/iOS10 获取隐私信息权限
在工程的Info.plist文件中根据需求对应的添加键值对。 添加键值对时,输入Pricacy,系统就会将自动将后续补全进行提示。 例如: 访问相册:Privacy - Calendars Usage Description ,键值对对应的Value值也必须填写,用户会看到这里填写的内容。 对应键值对的作用原创 2016-09-21 15:02:14 · 2132 阅读 · 0 评论 -
如何验证APP是否兼容IPv6
自2016年6月开始,苹果要求所有提交审核的项目必须兼容IPv6,如果不兼容,将会被拒。如何保证自己即将上线的APP项目不会因此悲剧,那就需要提前进行测试。常用的测试方式有两种:第一种,利用有线网络搭建IPv6环境;第二种,利用一部iPhone手机的热点共享进行IPv6环境的搭建。这两种方式都是利用MAC设备发射WIFI信号,然后测试机连接此WIFI进行测试。第一种:利用有线网络搭建IPv6环境原材原创 2016-09-01 22:20:12 · 10230 阅读 · 0 评论 -
JavaScript与Object-C交互
Object-C部分1、导入框架和对应的头文件JavaScriptCore.framework // 框架#import //头文件2、创建类文件,继承NSObject 3、编写类JSAndOCMutually.h代码 创建协议JSAndOCMutuallyProtocol,协议遵循 创建的类遵循创建的 代码示例如下:#import @protocol原创 2016-09-01 21:22:01 · 1305 阅读 · 0 评论 -
如何用MAC上的Safari检查iPhone手机App运行的Html页面
现在许多的App内都嵌入有Html页面,为了方便在进行App测试的时候,检查Html页面内元素以及元素样式,我们可以进行以下步骤,将手机App运行与Mac上的Safari进行连接。工具: iPhone手机、Mac、数据线手机与电脑未设置链接手机与电脑未设置链接时的截图如下: iPhone手机: 打开手机->设置->Safari->高级 截图如下: Mac:原创 2017-06-15 17:32:50 · 8981 阅读 · 0 评论 -
mac_命令行隐藏/显示隐藏文件
显示隐藏文件$ defaults write com.apple.finder AppleShowAllFiles -bool true或者$ defaults write com.apple.finder AppleShowAllFiles YES隐藏隐藏文件$ defaults write com.apple.finder AppleShowAllFiles -bool false或者$原创 2017-06-23 22:46:40 · 702 阅读 · 0 评论 -
mac_命令行删除Git本地库
进入git本地库位置输入命令行$ git init 可以得到本地库的.get文件路径输入命令行$ ls -a 此时可以得到本地库位置下的文件列表,会发现里面有.git .gitignore文件输入命令行$ rm -rf .git 然后再输入命令行$ ls -a,可以发现文件列表内.git文件已不存在删除本地仓库目录 输入命令行$ rm -rf 本地库位置 本地库位置: ~ 本地库位原创 2017-06-23 22:28:07 · 11318 阅读 · 0 评论 -
应用TouchID解锁
第一步导入对应的头文件#import <LocalAuthentication/LocalAuthentication.h>第二步创建LAContext对象LAContext *context = [LAContext new]; context.localizedFallbckTitle = @"右侧按钮标题";localizedFallbckTitle 设置指纹解锁失败时,提示框的右侧按钮提示原创 2016-09-01 21:24:38 · 357 阅读 · 0 评论 -
GitHub客户端上传本地代码
创建GitHub账号、安装GitHub客户端登录GitHub网站、在客户端登录账户创建新的代码存放处 填写及勾选一些信息 复制此代码存放处的路径 利用客户端上传代码 第一步:点击第五步的Open in Desktop,打开本地客户端 第二步:点击下图蓝色选中选项 然后将代码文件复制到打开的文件夹内 第三步:输入Summay和Description 第四步:点击提交按钮 点击提原创 2017-06-22 17:29:40 · 733 阅读 · 0 评论 -
Xcode_自定义代码块
Xcode代码块创建流程 按照如下格式进行代码块的创建,<# #>可以让代码块中的被其包含的部分处于可编辑状态。 @property (nonatomic, <#copy#>) <#NSString#> * <#stringName#>;按住option键,将写好的代码块拖至红色区域内。 在弹出框内填写对应的信息,不要和系统原本的代码块相冲突。 填写完对应信息,点击Done,即可完成代码块的自原创 2017-10-09 15:44:45 · 1787 阅读 · 0 评论 -
mac_不显示任何来源选项
系统更新后,安全性与隐私内不在显示任何来源,导致自己下载的程序无法安装,执行以下操作即可:打开终端,输入终端命令:sudo spctl --master - disable然后输入本机的开机密码,在输入密码的过程中有可能不会出现小黑点输入提示,照常输入密码,按回车即可。原创 2017-06-22 13:57:54 · 1669 阅读 · 0 评论 -
导入第三方类库,运行报错1609
报错信息如下: Undefined symbols for architecture i386:“_res_9_getservers”, referenced from:getdnssvraddrs(xpstl::vector&) in QAVSDK(xpnet.o)“_res_9_ninit”, referenced from:getdnssvraddrs(xpstl::vector&) in原创 2016-09-08 21:18:50 · 759 阅读 · 0 评论 -
TypeScript_For循环
let testArray = [20, "string", true, "hahha"];for循环for循环其实是标准的C语言风格语法。for (var i = 0; i < testArray.length; i ++) { console.log("数组的值:"+testArray[i]); }// 数组的值:20// 数组的值:string// 数组...原创 2018-06-02 14:29:29 · 15977 阅读 · 0 评论 -
ionic_页面滚动
// 1、导入ViewChild、Contentimport {Component, ViewChild} from '@angular/core';import { IonicPage, NavController, NavParams,Content } from 'ionic-angular';// 2、声明变量 @ViewChild(Content)Content:Content...原创 2018-06-06 17:21:09 · 496 阅读 · 0 评论 -
ionic3 定时器的使用
ionic3、Angular4 定时器的使用// 声明变量 applicationInterval:any; // 定时器// 使用定时器,每秒执行一次ionViewDidEnter(){ let that = this; let applicationPageOpenData:number = parseInt(((new Date().getTime()/100...原创 2018-05-26 17:35:53 · 2809 阅读 · 0 评论 -
ionic 处理页面导航条返回事件,返回指定页面
ionic:返回上一页面的方法this.navCtrl.pop();ionic:返回指定页面的方法:// 第一步:导入ViewChild 和 Navbarimport { Component,ViewChild } from '@angular/core';import { IonicPage, NavController, NavParams,Navbar } fro...原创 2018-05-26 11:40:04 · 3303 阅读 · 4 评论