chokshen
码龄8年
关注
提问 私信
  • 博客:196,121
    196,121
    总访问量
  • 68
    原创
  • 500,626
    排名
  • 14
    粉丝
  • 0
    铁粉

个人简介:技术改变人生!

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2016-06-28
博客简介:

chokshen的博客

查看详细资料
个人成就
  • 获得32次点赞
  • 内容获得12次评论
  • 获得69次收藏
  • 代码片获得289次分享
创作历程
  • 8篇
    2021年
  • 9篇
    2020年
  • 12篇
    2019年
  • 10篇
    2018年
  • 20篇
    2017年
  • 10篇
    2016年
成就勋章
TA的专栏
  • oc基础
    6篇
  • iOS基础
    25篇
  • iOS高级
    25篇
  • 数据结构和算法
    4篇
  • Swift基础
    6篇
  • 学习资料
  • Swift高级
    9篇
  • java
    4篇
  • javaEE
    2篇
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

175人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

mac配置环境变量

通常我们在安装某个命令行工具时,需要手动配置系统环境变量,配置方法如下:1.编辑环境变量配置vim ~/.bash_profile 2.保存环境变量配置source ~/.bash_profile
原创
发布博客 2021.05.18 ·
306 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

iOS中如何hook代理方法

在iOS中要hook某个类的实例方法是比较简单的,直接交换它的IMP指针即可达到目的,例如:+ (void)load { static dispatch_once_t oncetoken; dispatch_once(&oncetoken, ^{ SEL originalSelector = @selector(viewWillAppear:); SEL swizzledSelector = @selector(hook_viewWillAppe
原创
发布博客 2021.04.20 ·
1991 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Block捕获变量的典型案例

static NSInteger num3 = 300;NSInteger num4 = 3000;- (void)blockTest{ NSInteger num = 3; static NSInteger num2 = 30; __block NSInteger num5 = 30000; NSMutableArray * arr = [NSMutableArray arrayWithObjects:@"1",@"2", nil]; void(^block.
原创
发布博客 2021.04.10 ·
213 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

0-1背包和完全背包问题

一、0-1背包有一个容量为 N 的背包,要用这个背包装下物品的价值最大,这些物品有两个属性:体积 w 和价值 v。定义一个二维数组 dp 存储最大价值,其中 dp[i][j] 表示前 i 件物品体积不超过 j 的情况下能达到的最大价值,每件物品只能被添加一次。设第 i 件物品体积为 w,价值为 v,根据第 i 件物品是否添加到背包中,可以分两种情况讨论:第 i 件物品没添加到背包,总体积不超过 j 的前 i 件物品的最大价值就是总体积不超过 j 的前 i-1 件物品的最大价值,dp[i][j]
原创
发布博客 2021.03.03 ·
338 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

大数加减乘除算法(java版)

加法import java.lang.StringBuilder;class Solution { public String addStrings(String num1, String num2) { int carry = 0; StringBuilder str = new StringBuilder(""); int i = num1.length() - 1, j = num2.length() - 1; while
原创
发布博客 2021.02.21 ·
368 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

对于GCD中队列与线程的理解

队列(Dispatch Queue):指执行任务的等待队列,即用来存放任务的队列。队列是一种特殊的线性表,采用 FIFO(先进先出)的原则,即新任务总是被插入到队列的末尾,而读取任务的时候总是从队列的头部开始读取。每读取一个任务,则从队列中释放一个任务。队列的结构可参考下图任务:一段代码,本质上就是一系列指令在 GCD 中有两种队列:『串行队列』和『并发队列』。两者都符合 FIFO(先进先出)的原则。两者的主要区别是:执行顺序不同,以及开启线程数不同。串行队列(Serial Dispa...
原创
发布博客 2021.02.07 ·
525 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

iOS如何判断相册中的照片为同一张

1、Hash法extension UIImage { var MD5: String { guard let imageData = self.jpegData(compressionQuality: 1) else { return "" } let input = NSData(data: imageData) let digestLen = Int(CC_MD5_DIGEST_LENGTH) let result = Uns
原创
发布博客 2021.02.01 ·
1123 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Segmentation fault: 11

打包时报错:解决方案:
原创
发布博客 2021.01.28 ·
735 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java中char与int类型数字的相互转换

1、char类型转int类型数字// '1' -> 1char c = '1';int num = c - '0'; //c和'0'均会由ascii码转化为整型进行计算:49 - 482、int类型数字转char类型// 1 -> '1'int num = 1;char c = (char)(num + '0'); //'0'会转换为ascii码与整型num进行计算:48 + 1...
原创
发布博客 2020.12.09 ·
9103 阅读 ·
12 点赞 ·
0 评论 ·
28 收藏

Alamofire提交json数组格式的参数

使用Alamofire发送请求时,官方api中Parameters的格式必须为[String: Any],如果想要直接提交json数组格式,应该如何提交呢?/// A dictionary of parameters to apply to a `URLRequest`.public typealias Parameters = [String: Any]open func request(_ convertible: URLConvertible, met
原创
发布博客 2020.12.02 ·
2539 阅读 ·
3 点赞 ·
1 评论 ·
3 收藏

No “iOS Distribution“ signing certificate matching team ID “xxx“ with a private key was found

解决方法: 删除别人的打包证书创建自己的打包证书,这时自己的证书就是可用的了,可以进行打包了; 找到可用打包证书的人,从他的电脑上导出一个这p12文件给你,你用他的证书来进行打包; 以上两种方案肯定能解决这个问题,如果不能解决请重新打开Xcode。 ...
原创
发布博客 2020.11.14 ·
7126 阅读 ·
3 点赞 ·
2 评论 ·
0 收藏

nginx静态资源跨域配置

#访问路径拼接img访问本地绝对路径下的某图片 location /img/ { #跨域配置,如果不生效请先清除浏览器缓存数据 add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, PO...
原创
发布博客 2020.10.31 ·
985 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Xcode12: CompileSwiftSources normal armv7 com.apple.xcode.tools.swift.compile

选中项目PROJECT—Build Settings—Excluded Architecture,设置release模式下Any iOS SDK的值为armv7,因为iOS14 SDK不再支持armv7架构的手机,所以需要将armv7剔除。
原创
发布博客 2020.09.30 ·
5954 阅读 ·
0 点赞 ·
4 评论 ·
0 收藏

查看.framework以及.a的库文件支持的架构

.framework1.进入到framework目录下cd /Users/.../xxx.framework2.输入命令lipo -info xxx3.结果Architectures in the fat file: xsdkFramework are: armv7 arm64 不支持模拟器.alipo -info /Users/.../xxx.aArchitectures in the fat file: /Users/.../lib/xxx.a are: armv7 arm
原创
发布博客 2020.09.30 ·
1791 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Xcode 12 : error: ‘xxx/xxx.h‘ file not found or No such module ‘xxx‘

最近几天为了适配iOS14,将Xcode11升级到了Xcode12,一编译果然还是熟悉的味道。
原创
发布博客 2020.09.29 ·
2115 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

iOS界面刷新机制

当在操作 UI 时,比如改变了 Frame、更新了 UIView/CALayer 的层次时,或者手动调用了 UIView/CALayer 的 setNeedsLayout/setNeedsDisplay方法后,这个 UIView/CALayer 就被标记为待处理,并被提交到一个全局的容器去。苹果注册了一个 Observer 监听 BeforeWaiting(即将进入休眠) 和 Exit (即将退出Loop) 事件,回调去执行一个很长的函数:_ZN2CA11Transaction17observer_c
原创
发布博客 2020.09.21 ·
2663 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Swift属性重载

swift中有两种属性:存储属性和计算属性,它们都可以被重载,但是在重载方式上有一些不同。class Properties { //存储属性 var storedProperty: String? // 计算属性 var computedProperty: Bool { get { return true ...
原创
发布博客 2020.03.10 ·
467 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用UIPanGestureRecognizer手势时的注意事项

在iOS中,通常会使用pan手势来做控件拖拽的功能,但是在使用pan手势的时候,应当使用frame来进行布局而不是AutoLayout。特别是在拖拽的过程中,如果同时刷新拖拽视图内部的子控件,会导致拖拽出现问题,例如拖拽完回后自动回到初始位置。...
原创
发布博客 2019.12.06 ·
599 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Swift自定义导航栏返回按钮图标

//写代码的时候Xcode没有提示这两个属性,但确实是可以设置的UINavigationBar.appearance().backIndicatorTransitionMaskImage = UIImage(named: "navigationBar_back_btn")UINavigationBar.appearance().backIndicatorImage = UIImage(nam...
原创
发布博客 2019.12.05 ·
1169 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

pod 'filename used twice' build error

项目里一直存在一个很奇怪的问题,每次用pod导入一个新的第三方库,已经存在的第三方库就会报编译错误:'filename used twice' 以前以为是第三方库有问题,所以重新导入,问题得到了暂时的解决。但是指标不治本,每次pod新的第三方库,又会报这个错误。项目闲下来后仔细研究了下这个问题,发现是pod的project.pbxproj文件存在问题,重复引用第三方库的某些文件,所以导致...
原创
发布博客 2019.08.15 ·
396 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多