-
在Xcode自定义lldb命令pjson
在主目录下新建.lldbinit和print_json.pytouch ~/.lldbinittouch ~/print_json.py在print_json.py中输入以下代码import lldbdef print_json(debugger, command, result, internal_dict): target = debugger.GetSelectedTarget() process = target.GetProcess() thread = pro...…
-
理解 Swift 的方法派发
本文转自理解 Swift 的方法派发 派发(dispatch)是一个比较通用的概念,一般是指为了完成某个目的把一个东西发送到某个位置的行为。在计算机科学中,这个术语在很多地方都会用到,比如派发一个调用给某个函数,派发一个事件给一个监听者,派发一个中断给中断处理程序,或者派发一个进程给 CPU。在这篇文章中,我们主要研究 Swift 中的派发,也就是派发一个调用到某个方法上,Swift 中的方法派发包括类的方法派发和基于协议的派发。类的方法派发Swift 中类的方法的派发有以下三种方式: ...…
-
iOS老司机万字整理, 可能是最全的Swift Tips
本文转自iOS老司机万字整理, 可能是最全的Swift Tips 可能是最全的Swift Tips1. 关于Swift1.1 Swift的优点 Swft更加安全, 它是类型安全的语言. Swift容易阅读, 语法和文件结构简易化. Swift易于维护, 文件分离后结构更清晰. Swift代码更少, 简洁的语法, 可以省去大量冗余代码. Swift速度更快, 运算性能更高.1.2 Swift和OC如何相互调用? Swift调用OC代码, 需要创建一个Target-Bridgin...…
-
iOSTextView长度限制
-(void)textViewDidChange:(UITextView *)textView{ UITextRange *selectedRange = [textView markedTextRange]; UITextPosition *position = [textView positionFromPosition:selectedRange.start offset:0]; if (!position) { NSInteger length = ...…
-
ReactNative初始慢的问题
创建RN工程有两种方式,一种是npx,一种是yarn的# 第一种npx react-native init RNProject# 第二种yarn create react-native-app RNProject使用npx react-native init初始化React Native项目时需要下载很多依赖,会比较慢。有几种方法可以加速初始化过程: 使用yarn create react-native-app代替npx react-native init。yarn create...…
-
ReactNative踩坑
React Native默认运行真机,需要配置证书,如果要运行模拟器需要加模拟器yarn ios --simulator 'iPhone 14Pro'React Navigation安装npm install @react-navigation/nativenpm install react-native-screens react-native-safe-area-contextnpx pod-install iosnpm install @react-navigation/native...…
-
ReactNative环境安装
ReactNative环境安装安装Node和watchmanbrew install node@16brew install watchmannode@16 中的@16表示安装 Node.js 16.x 系列的最新版本。可选安装yarn,yarnFacebook 提供的替代 npm 的工具,可以加速 node 模块的下载npm install -g yarn创建新项目npx react-native@latest init AwesomeProject运行React Native项目使用n...…
-
关于BUILD_LIBRARY_FOR_DISTRIBUTION
在 CocoaPods 的 podspec 文件中,s.build_library_for_distribution 设置表示这个 pod 是否需要在集成时作为动态库进行编译。它是一个布尔值,默认为 false。如果设置为 true,表示这个 pod 会在集成时单独编译成一个动态库,然后主项目再链接这个动态库。设置为 true 的常见场景有: pod 包含了 C/C++ 代码,需要编译成动态库后再集成到项目中。 pod 中包含 Swift 代码,但主项目是 Obje...…
-
关于 Pod 库的资源引用 resource\_bundles or resources
本文转自关于 Pod 库的资源引用 resource_bundles or resources1. 资源文件引用的方式在第一节,先来介绍一下 CocoaPods 两种资源文件引用的方式——resource_bundles & resources1.1 resource_bundlesresource_bundles 允许定义当前 Pod 库的资源包的 名称和文件 。用 hash 的形式来声明,key 是 bundle 的名称,value 是需要包括的文件的通配 patterns。 ...…
-
Swift 调用 OC 实用技巧
Swift 调用 OC 实用技巧Swift App混入OC/C/C++代码方法一使用桥接文件。方法二使用.modulemap Swift App项目,引入OC/C/C++文件。 创建 文件名必须为module 后缀为.modulemap的文件。 配置工程BuildSetting的Swift Compiler - Search Paths选项,值为module.modulemap文件所在的目录路径或其上层目录路径。此处可为:${SRCROOT}/MixFrameworkTest${SR...…
-
云音乐 Swift 混编 Module 化实践
转自云音乐 Swift 混编 Module 化实践云音乐 Swift 混编 Module 化实践云音乐技术团队背景云音乐 iOS App 经历多年的迭代,积累了大量的 Objective-C(以下简称 OC) 代码,目前已经完成主工程壳化,各层组件关系如下: ![](data组件化后混编的场景主要集中在 Framework 内混编和 Framework 之间混编,Framework 内的混编成本较低,重头主要在 Framework 间的混编。在云音乐中集成的创新业务,因为依赖的历史基础库较...…
-
CocoaPods使用指南
前言对于大多数软件开发团队来说,依赖管理工具必不可少,它能针对开源和私有依赖进行安装与管理,从而提升开发效率,降低维护成本。针对不同的语言与平台,其依赖管理工具也各有不同,例如 npm 管理 Javascript、Gradle 、Maven 管理 Jar 包、pip 管理 Python 包,Bundler、RubyGems 等等。本文聚焦于 iOS 方面,对 CocoaPods 的使用和部分原理进行阐述。简单易用的 CocoaPods对于 iOSer 来说,CocoaPods 并不陌生,几...…
-
Swift 关于 module.modulemap 使用
Swift 关于 module.modulemap 使用原文2020-7-12 更新:为什么在 swift framework 中使用了自定义module.modulemap, build 出来的 framework 会报 Missing required module受 @Ulquiorra_04 的提醒,开始测试并写了这篇文章《Swift Framework 自定义 Module》,介绍了如何实现在 swift framework 中使用自定义 module。Swift 中最简单最优雅...…
-
加速Dock显示
去除动画,立即显示Dockdefaults write com.apple.dock autohide-time-modifier -int 0;killall Dock修改dock动画显示时间defaults write com.apple.dock autohide-time-modifier -float 0.15;killall Dock恢复默认设置defaults delete com.apple.dock autohide-time-modifier;killall Dock设...…
-
flutter问题记录
关于FFmpeg裁剪视频的问题 裁剪视频分辨率过高导致内存占用过高崩溃 视频格式导致跟苹果相册不兼容,导入不让保存到相册 -vcodec libx265 -vtag hvc1 视频裁剪过慢问题 -vcodec copy 视频前两秒黑屏 -ss 0:00:00.000000 -to 0:00:30.000000 -accurate_seek -i 'IMG_0120.MP4' -vcodec copy -preset ultrafast ...…
-
flutter_ffmpeg导出视频无法保存到相册的问题
flutter_ffmpeg导出视频无法保存到相册的问题 h265编码视频与QuickTime Player不兼容 FFmpeg命令行:如何压制与QuickTime兼容的HEVC视频 Flutter音视频裁剪flutter_ffmpeg踩坑笔记 ffmpeg生成的视频与QuickTime不兼容…
-
我的zshrc配置
# alias proxy='export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890'alias proxy='export https_proxy=http://user:pwd@127.0.0.1:7890 http_proxy=http://user:pwd@127.0.0.1:7890 all_proxy=socks5://...…
-
使用微软翻译翻译权限提示
使用微软翻译翻译权限提示import osfrom translate import Translator# translator=Translator(from_lang="cn",to_lang="english")# translation = translator.translate("你好,世界!")# print(translation)import reimport jsonfrom multiprocessing import Processfrom threading i...…
-
shutil模块使用
# f = open("dict_learn.py",'r',encoding = 'UTF-8')# print(f)# content = f.read(200)# print(content)# content = f.readlines()# print(content)# for line in f:# print(line)# f.close()# with open("learn1.py","r",encoding = 'UTF-8') as f:# coun...…
-
pythonos.walk使用案例
批量重命名# 导入os模块import os# 定义一个函数,接受一个路径参数def rename_files(path): # 使用os.walk()函数遍历当前目录和所有子目录 for root, dirs, files in os.walk(path): # 遍历每个文件 for file in files: # 拼接完整的文件路径 file_path = os.path.join(root, fil...…