本文介绍了GPUImage音视频技术,重点讲解混合模式滤镜的使用。GPUImage提供30种混合滤镜,支持多种图像混合效果,适合音视频技术初学者。文章详细说明了如何使用Objective-C和Swift实现这些滤镜,并列出了常见的混合模式及其效果。
在KMM中使用iOS原生数据时,Swift与Kotlin/Native通过Objective-C进行交互。需定义Swift类和头文件,并配置Gradle以确保命名一致。成功同步Gradle后,即可调用Swift方法。
在Objective-C中,+load方法用于全局初始化,但Swift没有完全相应的机制。Rhea库通过宏特性模拟+load的时机,允许在Swift中进行早期初始化。然而,过度使用可能影响应用启动性能,开发者应谨慎选择更符合Swift设计哲学的初始化方案。
Objective-C在iOS和macOS开发中仍然重要,特别是在维护遗留代码和与Swift集成时。委托模式用于对象间消息传递和行为定制,增强应用模块化。到2025年,开发者需遵循协议,保持文档更新,并定期分析代码,以确保应用的健壮性和可维护性。
Objective-C是一种用于macOS和iOS开发的编程语言,支持动态类型,允许在运行时确定对象类型。这种动态类型提高了代码的灵活性和可重用性,但可能导致运行时错误和调试复杂性。总体而言,动态类型增强了开发者创建适应性软件的能力。
作者分享了更新iOS App的经历,因缺乏信心而拖延,最终决定在春节前更新。面对Objective-C语法和API的挑战,借助GitHub Copilot Pro快速添加功能并提交审核。首次审核顺利通过,但第二次因未遵循App Store指南被驳回。经过多次修改和沟通,最终成功通过审核,强调了充分测试和及时沟通的重要性。
本文探讨了如何通过Kotlin/Native将Kotlin代码导出到Swift,强调控制导出内容的重要性。使用internal修饰符及@HiddenFromObjC、@HidesFromObjC注解可以隐藏不必要的Kotlin代码,从而简化API、提升编译性能和安全性。建议在项目初期实施这些做法,以确保可维护性和可扩展性。
文章介绍了如何将Kotlin代码编译为Objective-C并在iOS中使用。通过创建XCFramework,可以在Xcode中集成Kotlin代码。讨论了Kotlin/Native与Objective-C的互操作性,并建议通过重构代码和使用SKIE插件来改善与Swift的兼容性。SKIE插件生成更符合Swift习惯的代码,但可能增加构建时间。未来Kotlin版本将增强与Swift的互操作性。
本文介绍了如何在C语言中使用Objective-C调用Apple的Cocoa API。通过objc_msgSend函数,开发者可以在不编写Objective-C代码的情况下访问Cocoa API。文章提供了创建基本Cocoa窗口的示例,包括定义Cocoa类型、处理事件和设置回调函数,从而有效利用Cocoa框架。
本文介绍了iOS中的音讯机制-objc_msgSend的履行流程,包括音讯发送、动态办法解析和音讯转发三个阶段。在动态办法解析阶段,开发者可以动态添加办法。在音讯转发阶段,可以自定义逻辑处理音讯。此外,还介绍了super的本质和使用方法。
该脚本用于自动排序和分组iOS项目中的头文件引证,适用于Objective-C,能去除重复引证。它根据特定规则将头文件分类,提高代码可读性。引证少于5个的文件将被跳过。使用前请备份项目,并建议先在小范围内测试。
近日发现一个发通知时触发的 EXC_BAD_ACCESS 崩溃,经过排查发现是订阅端设置的参数类型不匹配导致的。将参数类型改为 Notification 后问题解决。同时发现该崩溃受 Xcode 缓存影响,且复现路径较苛刻。对于为什么纯 Swift 不会崩溃而混编时会崩溃以及两种参数导致的崩溃类型不一样的问题,仍需继续探索答案。
近日发现一个用 NSNotificationCenter 发通知时触发的 EXC_BAD_ACCESS 崩溃,表现形式比较奇怪,特此记录一下。
本文介绍了使用PyObjC与苹果的Vision Framework进行图像文本检测的方法,包括PyObjC的工作原理和Objective C函数映射到Python的步骤。作者还分享了开发过程中的经验和观点,并提供了使用Pillow库显示边界框的方法。
LLDB是下一代高性能调试器,支持C、Objective-C和C++,适用于macOS、Linux、Windows和Android等操作系统。WinDbg是Windows调试工具,适用于内核模式和用户模式调试。个人倾向于LLDB,因为它在Linux和macOS上更好用,具有优雅的设计和丝滑般的调试感受。
本文介绍了一个基于Swift和Objective-C工程的代码覆盖率自动化脚本,使用CocoaPods安装和配置,收集和生成代码覆盖率报告,注册代码覆盖率API,转换为可视化报告。全量代码覆盖率有助于发现和修复问题。下一篇文章将介绍增量覆盖率自动化实践。
动手点关注干货不迷路ARC 环境下在多线程中执行赋值代码可能会产生野指针,导致 EXC_BAD_ACCESS 崩溃。这种崩溃发生的概率很低,在开发和灰度阶段即使执行到相应代码也很难崩溃,因此容易遗漏到正式环境。在上亿级用户的 App 往往会成为 Top 问题,对指标造成影响,并且很难排查。今日头条在治理 Crash 的过程中彻底解决了数十个此类崩溃,发现其具有一定共性。本文详细分析崩溃发生的过程,...
最近,集成PSPDFKit后,lldb调试器出现“Couldn't IRGen expression”错误,导致无法正常工作。分析发现,Xcode 11.5的调试器在某些命令下无法打印变量信息。混合模式项目调试正常但有警告。解决方法是添加Objective-C类和桥接头文件,并确保Swift编译器和lldb版本来自同一工具链。通过删除dSYM文件和清理构建路径,问题得到解决。
我就职过的公司,都出现过不止一次因为后台实际数据类型和文档不一致导致的程序线上崩溃问题。原则上即使服务器离线了,app 都不应该直接闪退,所以 app 应当具有对服务器异常情况进行处理的能力。使用 ValueX 可以有效避免后台返回数据类型异常导致的程序崩溃。
完成下面两步后,将自动完成登录并继续当前操作。