自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

翱翔的魁魁

一个iOS程序员

  • 博客(158)
  • 资源 (3)
  • 收藏
  • 关注

原创 Flutter_Slider_SliderTheme_滑杆/滑块_渐变色

Slider-滑杆组件、渐变色

2023-10-08 17:38:19 562

原创 iOS_灵动岛<Dynamic Island>

苹果在 iPhone 14 Pro 及 iPhone 14 Pro MAX 上推出了灵动岛。灵动岛可以通过点按、长按、轻扫来进行交互,最多支持两个应用同时“登岛”。灵动岛全称 Dynamic Island,作为 iOS 中实时活动(Live Activities)功能的一部分,用来展示需要实时更新的消息。展现形式Compact<紧凑>、Minimal<最小化>、Expanded<扩展>,在开发提交的时候,必须适配这三种形式UI尺寸适配<尺寸单位Points圆角半径均为44。机型。

2023-06-29 17:15:28 1429

原创 Flutter_Flutter与JS相互调用

Flutter与JS相互调用

2023-06-29 10:19:25 1103

原创 Flutter_环境配置

将下面一串文本进行复制,粘贴进打开的文件。复制粘贴结束后,分次运行。将链接地址进行复制保存。

2023-05-26 10:07:51 752

原创 SwiftUI_属性装饰器

修饰器的属性存储到一个特殊的内存区域,并且这个区域和。会根据新的属性值重新创建视图。装饰过的属性发生了变化,修饰器我们可以关联出。创建具有初始值的变量。

2023-04-12 17:02:07 419

原创 iOS_IAP掉单及处理办法

iap掉单以及处理方法

2023-02-23 16:21:41 1397

原创 iOS_苹果内购详细步骤

苹果内购

2023-02-23 16:05:20 7143 1

原创 HTTP2.0特性

HTTP2.0特性

2023-02-22 21:05:46 441

原创 iOS_组件化_pod

iOS组件化简要流程和相关指令

2023-02-16 19:28:53 479 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 11488

原创 iOS_dispatch_group相关代码实现

目录`dispatch_group_create``_dispatch_group_create_with_count``dispatch_group_enter`代码块`dispatch_group_leave`代码块`_dispatch_group_wake``dispatch_group_notify``dispatch_group_notify_f``_dispatch_group_notify`代码dispatch_group_createdispatch_group_tdispa

2022-02-12 17:10:50 1203

原创 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 1237

原创 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 1663

原创 Xcode_Xcode13_shell指令_“.a“文件的生成和合并

新增TARGET点击工程内TRTGETS区域的左下角+按钮,然后会弹出以下选择框,选中图示图标,并点击Next生成一个新的TARGET新增RunScript选中上一步生成TARGET,选择Build Phases,点击+,新增RunScript复制以下指令到RunScript,并修改TARGET_NAME#TargetNameTARGET_NAME=WSKStaticLibrary#输出文件夹路径OUT_DIR=${SRCROOT}/ProductsUNIVERSAL..

2021-12-25 14:27:54 569

原创 iOS_导入Framework出现的问题

问题提示信息:Building for iOS Simulator, but the linked framework ‘xxx.framework’ was built for iOS.解决方案:修改项目配置<Build Setting>里面的Validate Workspace为Yes,则正常编译

2021-12-24 14:54:31 1168

原创 数据结构与算法_给定数组和目标值,返回目标值位置

题目描述:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置,如果数组中不存在目标值 target,返回 [-1, -1]。设计并实现时间复杂度为 O(log(n)) 的算法解决此问题。编写语言Swiftfunc seek(numArray: [Int], target: Int) -> (Int, Int) { if numArray.count == 0 { return (-1, -1) } var min

2021-12-23 17:27:36 445

原创 数据结构与算法_汉诺塔

汉诺塔相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。编写语言Swiftfunc hanno(num: Int, columnFrom: String, columnTemp: String

2021-12-23 17:20:17 2147

原创 数据结构与算法_斐波那契数列

斐波那契数列:斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,…,这个数列从第3项开始,每一项都等于前两项之和。编写语言Swift写法1:递归func calculateFunc(num: Int64) -> Int64 { if num <= 1 { return num } return calculateFunc(num: num-1)+calculateFunc(num: num-2) }

2021-12-23 17:14:20 1359

原创 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 1952

原创 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 1705

原创 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 2605

原创 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 1342

原创 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 117

原创 iOS_isa结构

联合体与位域共用同一内存空间,联合体内占用空间最大的那个@interface Trnk : NSObject@property (nonatomic, assign) BOOL front;@property (nonatomic, assign) BOOL back;@property (nonatomic, assign) BOOL left;@property (nonatomic, assign) BOOL right;@end#define DirectionFrontMask

2021-10-23 18:41:59 1335 1

原创 iOS_内存对齐原则

内存对齐原则1、数据成员对齐规则:结构体(struct)或联合体(union)的数据成员,第一个数据成员放在 offset 为 0 的地方,后续每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说数组、结构体等)的整数倍开始(比如int为4字节,则要从4的整数倍地址开始存储)2、结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储(strcut a里存有 struct b,b里有结构体char,int 等,那么b应该从

2021-10-23 16:41:20 216

原创 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 5506 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 1387

原创 Flutter_flutter2.0_填坑

替换项目旧新MediaQuery.of(context,nullOk: true);.of(context);BuildContextancestorStateOfTypefindAncestorStateOfTypeBuildContextancestorRenderObjectOfTypefindAncestorRenderObjectOfTypeBuildContextinheritFromWidgetOfExactTypedependOn.

2021-05-08 14:09:40 1759 1

原创 MAC_cocoapods切换镜像源_记录

步骤1$ cd ~/.cocoapods/repos 步骤2$ pod repo remove master步骤3-此镜像源为清华源$ git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master // 清华源$ git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master // 北京外国.

2021-03-16 21:25:51 1572

原创 Swift_WKWebView循环引用问题解决方法

1、创建一个新类WSKWeakScriptMessageDelegate代码示例如下:import UIKitimport WebKitclass WSKWeakScriptMessageDelegate: NSObject,WKScriptMessageHandler { weak var scriptDelegate:WKScriptMessageHandler! init (scriptDelegate:WKScriptMessageHandler) { su

2020-12-07 09:19:56 424

原创 Swift_指定位置切圆角

切圆角方法extension UIView { /** * 切圆角 * - Parameters: * - conrners * - radius 圆角弧度 */ func addCorner(conrners: UIRectCorner , radius: CGFloat) { let maskPath = UIBezierPath(roundedRect: self.bounds, byRoundingCorne.

2020-10-22 12:23:50 1093

原创 iOS_iOS14.0适配

iOS14.0适配,记录!适配UIPageControl出现的问题:iOS14以后删除了pageImage 与currentPageImage,不能再通过KVC修改控制器的图片。解决方案:借助iOS14新增字段preferredIndicatorImage,我们可以修改指示器小圆点的大小以及形状,然后借助currentPageIndicatorTintColor与pageIndicatorTintColor来确认不同状态下小圆点的颜色。部分代码示例:::UIPageControl *pag

2020-09-21 15:31:45 2358

原创 iOS_日历中写入日程_简单功能实现

简单的实现在日历中写入日程1、添加隐私权限Privacy - Calendars Usage DescriptionPrivacy - Reminders Usage Description2、代码实现如下- (void)saveCalenda{ EKEventStore *eventStore = [[EKEventStore alloc] init]; __weak typeof(self) weakSelf = self; if ([eventStore respond.

2020-06-03 15:44:38 1539

原创 iOS_3DTouch使用

只支持iOS9.0以后的系统使用方法如下 // 创建item UIApplicationShortcutItem *item = [[UIApplicationShortcutItem alloc] initWithType:@"type1" localizedTitle:@"标题1" localizedSubtitle:@"副标题1" icon:[UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeComp.

2020-05-28 17:05:04 273

原创 iOS_PDF文件合并

PDF文件合并// 返回值为合并后的pdf文件路径,存储在沙盒内- (NSString *)mergePDFFiles:(NSArray *)listOfPaths { // File paths NSString *fileName = [NSString stringWithFormat:@"合并后的文件%d.pdf",arc4random_uniform(100)]; NSString *pdfPathOutput = [[NSSearchPathForDirecto.

2020-05-25 16:43:30 479

原创 iOS_iOS9.0与iOS10.0+,TabBar层级对比

最近的项目需要支持iOS9.0,需要自定义TarBar,在进行自定义的过程中,出现了一些问题,其根本原因就是iOS9.0与iOS10.0+系统的差别,对TarBar进行层级的修改。如下图所示,可以看出。iOS10.0以后将背景图_UITabBarBackgroundView与顶部横线UIImageView视图进行合并,合并为_UIBarBackground。...

2020-05-13 14:20:33 202

原创 iOS_处理网络请求数据打印问题_记录用

//// WSKPrintJsonLog.h// SuperSaleApp//// Created by 王盛魁 on 2020/3/5.// Copyright © 2020 wangsk. All rights reserved.//#import <Foundation/Foundation.h>//// WSKPrintJsonLog.m// SuperSaleApp//// Created by 王盛魁 on 2020/3/5.// Cop

2020-05-12 14:57:41 393

原创 iOS_常用判断以及格式校验方法_记录用

空字符串转化+ (NSString *)convertNullString:(id)object{ if (!object) { return @""; } if (object && [object isEqual:[NSNull null]]){ return @""; }else if ([object isKindOfClass:[NSNull class]]){ return @""; }.

2020-05-12 14:51:53 342

原创 iOS_Xcode11.4使用LaunchImage

近日升级新版的Xcode11.4,又是新项目,发现在General内Launch Images Source被取消了。还想使用Launch Image怎么办?将General内Launch Screen File清空。打开Build Settings,搜索Launch Image,然后将对应的值修改为自己新添加的资源图片名称。...

2020-04-14 10:56:31 577

原创 iOS_AES加解密_128位_ECB模式

AES加密分为128、129、256,只是标识符的不同而已。AES加密默认为CBC模式,添加一个标识即可变为ECB模式。ECB模式不需要偏移量。字符串处理一般为base64编码,字符集为UTF-8。代码示例如下://// AESTool.h//// Created by 王盛魁 on 2020/4/3.// Copyright © 2020 王盛魁. All right...

2020-04-09 18:19:11 996

pusher.app

用于测试iOS开发推送功能,需要对应的推送证书以及DeviceToken

2018-11-13

mac开发安卓手机

用于mac连接安卓手机,将安卓手机作为存储器打开,操作安卓手机文件夹

2018-11-13

OC自动根据json数据生成Model类

将返回的json报文粘贴至文本框内,点击确认类名,会自动根据json数据生成Model类,用于iOS开发

2018-11-13

空空如也

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

TA关注的人

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