<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[opentogether的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/opentogether</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; opentogether]]></copyright><item><title><![CDATA[高考信息表]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/156583223</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/156583223</guid><author>opentogether</author><pubDate>Mon, 05 Jan 2026 01:46:20 +0800</pubDate><description><![CDATA[与合并，并（因其享受特殊国家政策，实际升学机会显著高于新疆全区平均水平）的完整综合对比表。]]></description><category></category></item><item><title><![CDATA[C++*&]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/149315059</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/149315059</guid><author>opentogether</author><pubDate>Sun, 13 Jul 2025 20:19:49 +0800</pubDate><description><![CDATA[表达式类型含义ratsint一个整型变量，值为101rodentsint&rats的别名，修改它等于修改ratsp_ratsint*指针，指向rodents，也就是指向rats*p_ratsint通过指针访问rats的值&rodentsint*rodents的地址，和&rats相同rats是原始变量，rodents是它的别名（引用），p_rats是指向这个变量的指针。三者最终都指向同一块内存中的值101。]]></description><category></category></item><item><title><![CDATA[C++ 4_15自学]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/149313628</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/149313628</guid><author>opentogether</author><pubDate>Sun, 13 Jul 2025 20:14:38 +0800</pubDate><description><![CDATA[第一段代码。]]></description><category></category></item><item><title><![CDATA[C++学习笔记01(自学草稿)]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/149157057</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/149157057</guid><author>opentogether</author><pubDate>Mon, 07 Jul 2025 23:34:43 +0800</pubDate><description><![CDATA[所谓的引用，其实本质来讲就是一个。6.11 常量的引用。]]></description><category></category></item><item><title><![CDATA[每次clone都会有：Enter passphrase for key ‘/Users/xxx/.ssh/id_rsa‘:]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/148482701</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/148482701</guid><author>opentogether</author><pubDate>Fri, 06 Jun 2025 21:40:53 +0800</pubDate><description><![CDATA[是每次使用 SSH 连接 Git 服务器（如 gitlab.alibaba-inc.com）时，系统要求你输入私钥的 passphrase（密钥口令）。这个 passphrase 是用于加密你的私钥文件的密码，目的是防止他人拿到你的私钥后随意使用。每次 Git 使用 SSH 协议进行操作（如 clone、pull、push），都需要用到你的私钥来验证身份，因此你需要输入 passphrase 来解密私钥。如果你使用的是 macOS，可以将私钥添加到钥匙串中，这样开机登录后就会自动加载，无需手动输入。]]></description><category></category></item><item><title><![CDATA[OCframework编译Swift]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/148076290</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/148076290</guid><author>opentogether</author><pubDate>Mon, 19 May 2025 22:43:03 +0800</pubDate><description><![CDATA[主工程添加swift文件（空实现即可，可以没有内容）,但不要添加bright文件!#import "{工程名}/{工程名}-Swift.h"   //02。#import "{工程名}/{工程名}-Swift.h"需要对外暴露的OC文件，需要放到OC的.h文件中。]]></description><category></category></item><item><title><![CDATA[PODS_ROOT、BUILT_PRODUCTS_DIR和SRCROOT有什么区别]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/147155136</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/147155136</guid><author>opentogether</author><pubDate>Fri, 11 Apr 2025 22:04:48 +0800</pubDate><description><![CDATA[└── DerivedData/         # Xcode 生成（隐藏目录）通过理解这三者的差异，可以精准控制文件引用，避免 90% 的路径相关构建错误。是三个核心的 Xcode 环境变量，它们的区别主要体现在。# 使用 PODS_ROOT 调用 Pod 提供的工具。非 Pod 管理的资源（图片、本地化文件等）CocoaPods 生成的配置文件（如。的子路径（因平台/配置不同而变化）# 引用 Pod 中的头文件。# 引用项目自身的头文件。# Pod 管理的头文件。# 构建生成的框架头文件。]]></description><category></category></item><item><title><![CDATA[XCode16 在Other LInker Flags中，添加-ld64与不添加，有什么区别？]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/146507177</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/146507177</guid><author>opentogether</author><pubDate>Tue, 25 Mar 2025 16:51:31 +0800</pubDate><description><![CDATA[只有在遇到问题时再切换回旧版链接器。如果仍有疑问，请提供更多具体的错误信息或上下文，我可以为您提供更有针对性的建议！在以下情况下，您可能需要在。在 Xcode 16 中，与不添加的主要区别在于。如果您不确定是否需要添加。以下是判断是否需要添加。，可以先尝试默认使用。]]></description><category></category></item><item><title><![CDATA[Project、Workspace、Target、Module相互的依赖关系]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/145854979</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/145854979</guid><author>opentogether</author><pubDate>Tue, 25 Feb 2025 15:45:30 +0800</pubDate><description><![CDATA[在iOS开发中，Project、Workspace、Target 和 Module 是不同层次的概念，它们的定义范围大小和依赖关系如下：从大到小排序：Workspace范围最大，可以包含多个 Project 和共享的构建环境。用于管理多个相关 Project 的协作和依赖。Project包含一个或多个 Target 和 Module。是代码、资源和构建设置的基本组织单元。Target是 Project 中的一个具体构建目标，定义了如何生成一个产品（如App、Framework）。一个 Project 可以有]]></description><category></category></item><item><title><![CDATA[中介者模式（Mediator Pattern）、桥接模式（Bridge Pattern） 和 策略模式（Strategy Pattern）]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/144811618</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/144811618</guid><author>opentogether</author><pubDate>Sun, 29 Dec 2024 22:09:42 +0800</pubDate><description><![CDATA[模式目的/特点使用场景Swift 示例中介者模式降低类之间的耦合，通过中介者来协调交互多个对象之间存在复杂交互时，避免直接引用其他对象聊天系统中用户通过中介者交换消息桥接模式将抽象和实现分离，允许它们独立变化抽象部分和实现部分变化频繁的场景图形绘制系统，不同的形状和绘制方式策略模式将算法封装成独立的策略类，使得算法可以互换需要根据不同情境使用不同算法的场景排序算法的选择，可以动态切换不同的排序策略这些设计模式帮助解决不同类型的耦合问题，允许我们编写更加灵活、可扩展、可维护的代码。]]></description><category></category></item><item><title><![CDATA[数据量或带宽单位]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/144803303</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/144803303</guid><author>opentogether</author><pubDate>Sun, 29 Dec 2024 13:30:57 +0800</pubDate><description><![CDATA[1 Mbps和1 Mb/s是完全相同的，它们都代表每秒1,000,000 比特的传输速率。。。因此，1 MB/s并不是1024 KB/s，而是1000 KB/s（按照十进制表示）。]]></description><category></category></item><item><title><![CDATA[iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/144786351</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/144786351</guid><author>opentogether</author><pubDate>Sat, 28 Dec 2024 11:48:47 +0800</pubDate><description><![CDATA[iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针-优快云博客]]></description><category></category></item><item><title><![CDATA[iOS组件化]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/144709677</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/144709677</guid><author>opentogether</author><pubDate>Thu, 26 Dec 2024 13:26:01 +0800</pubDate><description><![CDATA[修改，已经有Swift版本，CTMediator。]]></description><category></category></item><item><title><![CDATA[iOS开发，线上问题/crash如何排查]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/144662803</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/144662803</guid><author>opentogether</author><pubDate>Mon, 23 Dec 2024 12:08:54 +0800</pubDate><description><![CDATA[线上问题的排查是一个多方面的工作，涉及到工具的使用、日志分析、用户行为追踪以及多种测试方法。分析崩溃报告和日志。使用性能分析工具（如 Instruments）来排查性能瓶颈。跟踪用户行为，发现潜在的用户操作问题。网络抓包和调试，确认请求和响应的正确性。重现线上问题，找到可能的根本原因。通过这些方法，我们可以有效地定位线上问题并尽快修复，提高用户体验。没有堆栈信息的崩溃问题排查，通常需要综合多种手段和工具，如崩溃日志分析、性能分析、内存管理工具、线程分析、重现步骤排查、代码审查等。]]></description><category></category></item><item><title><![CDATA[Swift Type Erasure（类型擦除）]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/144595031</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/144595031</guid><author>opentogether</author><pubDate>Thu, 19 Dec 2024 21:09:39 +0800</pubDate><description><![CDATA[*类型擦除（Type Erasure）**的核心思想就是将泛型类型封装成一个类型擦除对象，该对象不再暴露泛型类型的具体实现细节，而是保留协议的接口。这样一来，泛型类型就可以与其它类型协作，像普通的类型一样被存储和操作。在 Swift 中，使用类型擦除可以将泛型协议封装成一个固定类型，隐藏类型的具体细节，使得协议的使用更加灵活。add(_:)用于添加一个Itemget()用于获取一个Item。和。?0?""和都遵循了Container协议，但它们分别持有不同类型的元素（Int和String。]]></description><category></category></item><item><title><![CDATA[Swift 的动态性]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/144585283</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/144585283</guid><author>opentogether</author><pubDate>Thu, 19 Dec 2024 15:03:21 +0800</pubDate><description><![CDATA[Swift 的动态性主要通过动态派发、反射、类型检查、动态成员查找等特性实现。虽然 Swift 是一门静态类型的语言，但它也提供了许多动态特性，使得在某些特定场景下，可以像动态语言一样进行编程。这些动态特性尤其在与 Objective-C 代码交互时，或者在需要灵活处理不确定结构时，能够极大地增强开发者的灵活性。不过，Swift 中的动态特性通常是基于 Objective-C 运行时（如@objc）的支持，因此在纯 Swift 代码中动态性相对有限。]]></description><category></category></item><item><title><![CDATA[iOS 应用的生命周期]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/144536499</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/144536499</guid><author>opentogether</author><pubDate>Tue, 17 Dec 2024 16:01:45 +0800</pubDate><description><![CDATA[活跃状态（Active）应用处于前台，并正在运行，用户可以与应用交互。应用的 UI 是可见的，且可以接收用户输入。相关方法：应用从后台或非活跃状态进入前台，恢复活动状态时调用。：应用从后台进入前台，但尚未恢复活跃状态时调用。非活跃状态（Inactive）应用仍然处于前台，但由于一些事件（例如电话呼入、系统通知）应用未能响应用户输入。应用 UI 是可见的，但无法进行交互。相关方法：应用将进入非活跃状态时调用，通常是因为电话来电、用户锁屏等原因。后台状态（Background）]]></description><category></category></item><item><title><![CDATA[如何避免回调地狱；多个并发任务完成后处理结果]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/144369746</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/144369746</guid><author>opentogether</author><pubDate>Tue, 10 Dec 2024 13:52:14 +0800</pubDate><description><![CDATA[闭包链式调用：通过在闭包中执行下一步操作来避免回调地狱。：通过来并行执行多个异步任务并等待它们的完成。：在 Swift 5.5 引入的特性让异步编程变得像同步编程一样简单。Combine：利用 Combine 框架的操作符来处理多个异步任务，避免深层嵌套。Result类型：封装每个异步任务的结果，以便优雅地处理错误。这些方法不仅能提高代码的可读性和可维护性，还能让你以更加现代化的方式进行异步编程。：适用于等待多个并发任务完成后进行处理，使用enter()leave()和notify()。]]></description><category></category></item><item><title><![CDATA[协议编程解决钻石继承问题]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/144166827</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/144166827</guid><author>opentogether</author><pubDate>Mon, 02 Dec 2024 15:42:06 +0800</pubDate><description><![CDATA[钻石继承问题发生在传统的多重继承中，但 Swift 使用协议（Protocol）来避免这一问题。协议是接口规范，不会引入复杂的继承链。通过协议扩展，协议可以为遵循它的类型提供默认实现，进一步简化代码并避免继承问题。使用协议的方式实现了灵活的多重约定，而不会遇到钻石继承带来的冲突和复杂性。Swift 通过协议和协议扩展的设计模式解决了传统 OOP 中的钻石继承问题，并且使得代码更加模块化和可维护。]]></description><category></category></item><item><title><![CDATA[锁-读写锁-Swift]]></title><link>https://blog.youkuaiyun.com/opentogether/article/details/144189281</link><guid>https://blog.youkuaiyun.com/opentogether/article/details/144189281</guid><author>opentogether</author><pubDate>Mon, 02 Dec 2024 15:37:15 +0800</pubDate><description><![CDATA[【代码】锁-读写锁-Swift。]]></description><category></category></item></channel></rss>