¥
立即购买

iOS方法功能描述生成器

18 浏览
1 试用
0 购买
Dec 5, 2025更新

本提示词专为iOS开发者设计,能够根据方法名称和核心功能描述,生成专业、准确的方法说明文档。它采用结构化分析方式,确保输出的方法描述符合iOS开发规范,包含方法目的、参数说明、返回值解释和使用场景等关键要素,帮助开发者编写清晰易懂的代码文档,提升代码可维护性和团队协作效率。

  • 方法概述 基于给定的用户 ID,通过 REST 接口异步获取用户资料。方法优先使用内存/磁盘缓存命中以加速返回;当 forceRefresh 为 true 时跳过缓存并强制从网络刷新。网络请求与 JSON 解析均在后台队列执行,完成后在主线程通过 completion 回调返回结果。方法内置一次失败自动重试策略,并支持在访问令牌过期时自动刷新令牌再重放请求。为减少重复请求带来的资源消耗,内部包含请求节流策略,避免短时间内对同一用户多次发起相同请求。

  • 参数说明

    • userID
      • 类型:String(或项目中定义的用户标识类型)
      • 作用:目标用户的唯一标识,用于定位后端资源与缓存条目。
      • 取值要求:必须为后端可识别的合法标识;为空或非法将导致请求失败。
    • forceRefresh
      • 类型:Bool,默认值通常为 false
      • 作用:是否跳过内存/磁盘缓存并直接从网络获取最新数据。
      • 取值影响:
        • false:先查内存缓存,其次磁盘缓存;若命中即快速返回,同时可按实现策略决定是否在后台静默刷新。
        • true:忽略缓存,直接发起网络请求并在成功后更新缓存。
    • completion
      • 类型:@escaping (Result<User, Error>) -> Void(或等效的回调签名)
      • 线程:始终在主线程调用,便于直接更新 UI。
      • 语义:回调只调用一次,成功时携带反序列化后的 User 模型,失败时返回合适的错误。
  • 返回值 无(异步)。结果通过 completion 回调返回:

  • 成功:Result.success(User)

  • 失败:Result.failure(Error),常见错误包括网络错误、服务端错误、数据解析错误、鉴权错误(如刷新令牌失败)等

  • 使用示例 示例一:优先使用缓存的常规获取

userService.fetchUserProfile(userID: "12345", forceRefresh: false) { result in
    switch result {
    case .success(let user):
        // 主线程更新 UI
        self.nameLabel.text = user.displayName
    case .failure(let error):
        // 展示错误信息或降级处理
        self.showError(error)
    }
}

示例二:下拉刷新时强制从网络更新

refreshControl.beginRefreshing()
userService.fetchUserProfile(userID: "12345", forceRefresh: true) { result in
    refreshControl.endRefreshing()
    switch result {
    case .success(let user):
        self.render(user)
    case .failure(let error):
        self.showError(error)
    }
}
  • 注意事项

    • 线程与性能:
      • 网络请求与 JSON 解析在后台队列执行,不阻塞主线程;completion 在主线程触发。
      • 避免在 completion 中执行耗时任务;如需后处理,请切换到合适的后台队列。
    • 缓存策略:
      • 非强制刷新时优先返回内存/磁盘缓存;缓存未命中才发起网络请求。
      • 强制刷新会绕过缓存并在成功后更新缓存,适用于用户主动刷新或需获取最新数据的场景。
    • 自动重试:
      • 对瞬时性失败(如网络抖动、临时 5xx)会自动再次尝试一次。持续失败将通过 completion 返回错误。
      • 请避免在外层对相同调用立即进行紧密循环重试,以免与内部重试叠加造成流量放大。
    • 令牌过期处理:
      • 检测到鉴权令牌过期时,会先刷新令牌再重放原请求。若刷新失败或重放仍失败,将通过错误回调返回。
      • 具体重试计数与令牌刷新过程的交互以实现为准,应确保无重放死循环。
    • 请求节流:
      • 对同一 userID 的高频调用会应用节流策略,避免在短时间内发起过多重复网络请求;实现可能采用合并并发请求或限频等方式。
      • 被节流的调用均会在主线程收到相同的结果回调。
    • 内存管理:
      • 在闭包中使用 [weak self] 以避免循环引用,特别是在控制器或视图上下文中。
    • 错误处理:
      • 建议根据错误类型进行差异化处理(网络不可达、解析失败、鉴权失败等),并提供用户可感知的反馈或重试入口。
  • 相关方法 当前无其它已知的公开相关方法。根据项目需要,常见的配套能力(若在您的代码库中存在)包括:

  • getCachedUserProfile(userID:): 仅从内存/磁盘缓存读取,不触发网络。

  • clearUserProfileCache(userID:)/clearAllUserProfileCache(): 清除指定/全部用户资料缓存。

  • refreshAuthToken(completion:): 手动触发刷新鉴权令牌。

  • prefetchUserProfiles(userIDs:): 预加载一批用户资料以提升后续访问速度。

方法概述 在指定的 UIViewController 上以线程安全的方式展示 UIAlertController,统一在主线程执行,支持多个按钮(UIAlertAction)及其样式配置(default/cancel/destructive)。方法会自动处理 iPad 上的弹出锚点(popover sourceView/sourceRect)与横竖屏适配,避免因缺少锚点导致的崩溃;具备重复弹出防护,若目标控制器当前已有警告弹窗正在展示,将跳过重复呈现。提供 completion 回调以便在弹窗完全消失后获知结束时机。适用于错误提示、权限引导、确认操作等通用场景。

可参考的签名形式(示例):

  • Swift: func presentAlert(on presenter: UIViewController, title: String?, message: String?, actions: [UIAlertAction], completion: (() -> Void)?)
  • Objective-C:
    • (void)presentAlertOn:(UIViewController *)presenter title:(nullable NSString *)title message:(nullable NSString *)message actions:(NSArray<UIAlertAction *> *)actions completion:(void (^ _Nullable)(void))completion;

参数说明

  • on / presenter

    • 类型:UIViewController
    • 作用:作为弹窗的呈现者(presenting view controller)。
    • 要求:应处于可见或即将可见的视图层级;方法内部在主线程安全调用。若该控制器当前正展示其他 UIAlertController,方法将避免再次弹出重复警告。
  • title

    • 类型:String? / NSString * _Nullable
    • 作用:弹窗标题,显示为加粗文本。
    • 取值:可为空;建议简洁明确,避免过长文本影响可读性。
  • message

    • 类型:String? / NSString * _Nullable
    • 作用:弹窗正文内容。
    • 取值:可为空;建议控制在若干行内,必要时考虑换行或更详细的说明链接。
  • actions

    • 类型:[UIAlertAction] / NSArray<UIAlertAction *>
    • 作用:用户可交互的按钮集合,按数组顺序展示。
    • 取值与规则:
      • 至少提供一个按钮以保证可关闭性(通常包括一个 .default 或 .cancel)。
      • 样式支持:.default、.cancel(最多一个)、.destructive。
      • 按钮的 handler 在用户点选后执行,随后弹窗关闭。
  • completion

    • 类型:(()->Void)? / void (^ _Nullable)(void)
    • 作用:在 UIAlertController 完全消失(dismiss 完成)后回调,用于后续流程衔接(如导航跳转、重试等)。
    • 线程:在主线程回调。

返回值

  • 无(Void)。显示与关闭的结果通过用户操作与 completion 回调获知。

使用示例

  • 示例一:错误提示(单按钮确认) Swift: let ok = UIAlertAction(title: "确定", style: .default) { _ in // 记录日志或清理状态 } presentAlert(on: self, title: "网络错误", message: "请求失败,请检查网络连接后重试。", actions: [ok], completion: nil)

  • 示例二:权限引导(跳转系统设置) Swift: let cancel = UIAlertAction(title: "取消", style: .cancel, handler: nil) let settings = UIAlertAction(title: "前往设置", style: .default) { _ in if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url) } } presentAlert(on: self, title: "需要相机权限", message: "请在系统设置中开启相机访问权限以继续拍摄。", actions: [cancel, settings]) { // 弹窗关闭后的后续处理(如刷新权限状态) }

Objective-C(同场景): UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]; UIAlertAction *settings = [UIAlertAction actionWithTitle:@"前往设置" style:UIAlertActionStyleDefault handler:^(__unused UIAlertAction *action) { NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; if (url && [[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil]; } }]; [Helper presentAlertOn:self title:@"需要相机权限" message:@"请在系统设置中开启相机访问权限以继续拍摄。" actions:@[cancel, settings] completion:^{ // 弹窗关闭回调 }];

注意事项

  • 主线程调用:方法内部已确保在主线程执行 UI 呈现;若在后台线程调用,将自动切换至主线程。
  • 重复弹出防护:在同一 presenter 上已有 UIAlertController 正在显示时,本方法会跳过后续相同时机的展示,避免多层警告叠加或竞争呈现。
  • iPad 适配:当使用需要 popover 锚点的呈现形式(如 Action Sheet)时,本方法将为 popoverPresentationController 自动设置合适的 sourceView/sourceRect,避免在 iPad 上因缺失锚点导致的崩溃;横竖屏切换场景下能保持锚点有效。
  • 操作规范:
    • actions 中最多只包含一个 .cancel 按钮,并建议置于数组末尾以符合人机界面指南。
    • 在按钮 handler 中避免强引用循环(使用 [weak self] / __weak),并谨慎执行耗时操作。
  • 展示时机:确保 presenter 已加入窗口层级并可展示。若在 viewDidLoad 等过早时机调用,可能不会出现弹窗;建议在视图出现后调用(如 viewDidAppear)或在可见性已确认的业务回调中调用。
  • 文本与本地化:标题与正文建议本地化处理,并在多语言与动态字体(Dynamic Type)场景下进行可读性验证。

相关方法

  • UIKit:UIAlertController、UIAlertAction
  • UIApplication.openSettingsURLString(跳转系统设置)
  • UIViewController.present(_:animated:completion:)(系统呈现接口,用于理解底层行为)
  • 方法概述 提供通用的去抖动工具:在指定的 delay 时间窗口内合并多次触发,仅在窗口结束时执行最后一次动作。支持自定义执行所用的 DispatchQueue,并在新触发到来时自动取消上一次尚未执行的计划任务。方法设计为线程安全,可在任意线程调用,适用于搜索输入联想、滚动事件统计、文本校验等高频事件场景,以减少无效调用并提升性能。

  • 参数说明

  1. delay: TimeInterval

    • 作用:去抖时间窗口长度(秒)
    • 取值范围:建议使用非负数;通常 0.1~0.6 秒适用于用户输入与滚动等UI场景
    • 含义:在该时间窗口内若再次触发,将取消上一次未执行的计划,并重新计时
  2. queue: DispatchQueue

    • 作用:执行最终动作的目标队列
    • 取值范围:任意 DispatchQueue;默认通常为 .main
    • 建议:涉及UI更新请选择 .main;纯计算或网络请求可使用后台队列
  3. _: () -> Void

    • 作用:时间窗口结束后要执行的动作闭包
    • 行为:不会在触发时立即执行;只有在窗口内不再有新的触发时才执行
  • 返回值

  • 类型:() -> Void

  • 含义:返回一个可重复调用的“触发闭包”。每次调用该触发闭包都会:

    • 取消(如果存在)上一次尚未执行的计划任务
    • 重新开始一个新的 delay 计时
    • 在 delay 结束且期间无再次触发时,于指定 queue 上执行传入的动作闭包
  • 使用示例 示例一:搜索输入联想(在主线程合并快速输入)

final class SearchViewController: UIViewController, UITextFieldDelegate {
    @IBOutlet private weak var textField: UITextField!
    private var currentQuery: String = ""

    // 1) 创建去抖触发器,动作在主队列执行(更新UI安全)
    private lazy var debouncedSearch = debounce(delay: 0.35, queue: .main) { [weak self] in
        guard let self else { return }
        self.performSearch(query: self.currentQuery)
    }

    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        if let r = Range(range, in: textField.text ?? "") {
            currentQuery = (textField.text ?? "").replacingCharacters(in: r, with: string)
        }
        // 2) 高频输入时仅在用户短暂停顿后触发搜索
        debouncedSearch()
        return true
    }

    private func performSearch(query: String) {
        // 发起搜索请求并更新UI
    }
}

示例二:滚动事件统计(在后台队列做聚合处理)

final class AnalyticsScrollDelegate: NSObject, UIScrollViewDelegate {
    private lazy var debouncedLog = debounce(delay: 0.5, queue: .global(qos: .utility)) {
        Analytics.logEvent("scroll_stopped", parameters: nil)
    }

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        // 高频调用:仅在用户停止滚动后再上报一次
        debouncedLog()
    }
}
  • 注意事项

  • 仅执行尾缘(trailing)调用:在时间窗口内的多次触发会被合并,最终只执行最后一次动作

  • 可能“永不触发”:若触发频率始终高于 delay(窗口未能结束),动作将一直被取消且不会执行;若需要限制最小间隔但保证一定执行,请考虑使用节流(throttle)

  • 线程与队列:

    • 触发闭包可在任意线程调用,内部保证状态一致性与线程安全
    • 动作闭包在传入的 queue 上执行;若动作包含UI更新,请选择 .main 或在动作内切回主线程
  • 内存管理:动作闭包如捕获 self,请使用 [weak self] 以避免循环引用

  • 参数建议:delay 使用正数以获得稳定的去抖效果;过小的窗口在高频触发下可能等同于“几乎每次都执行”

  • 生命周期:请确保对返回的触发闭包保持有效引用;一旦触发闭包被释放,已有的计划任务可能被取消且不再执行

  • 相关方法

  • throttle(delay:queue:_:):节流工具,在固定间隔内限制执行频率,常与去抖互补使用

  • Timer/DispatchSourceTimer:用于自定义时序控制的底层计时工具(可实现更复杂的节流/去抖策略)

示例详情

解决的问题

把“方法名 + 一句话功能”快速转化为专业、可直接使用的iOS方法说明,覆盖方法目的、参数解释、返回结果、使用示例与注意事项等关键信息;统一团队文档风格,显著降低沟通与评审成本,提升代码可读性与可维护性;适配Swift与Objective‑C双语场景,帮助个人与团队在新功能开发、重构、代码评审、对外交付等环节高效产出高质量文档,促发试用兴趣并引导持续付费使用。

适用用户

iOS开发工程师

为新功能与重构方法快速生成规范说明,包含目的、参数、返回值、示例与注意点,提交代码时直接附带文档,减少往返沟通

移动端技术负责人/架构师

制定统一文档风格与模板,批量规范核心库方法说明,沉淀知识库,提升代码评审效率与团队一致性

初级开发/实习生

借助结构化示例理解方法意图与场景,按提示补齐注意事项,在真实任务中快速提升文档与表达能力

特征总结

一键生成方法概述、参数、返回值与示例,输出成稿即可粘贴进项目文档
自动解析方法名称与功能要点,提炼设计意图,避免描述含糊和遗漏关键信息
内置苹果风格表达与术语规范,确保文案口径统一,团队协作与评审更高效
支持Swift与Objective‑C双语示例,一次输入,多处复用,适配不同代码风格
自动补充典型使用场景与注意事项,覆盖边界条件,降低线上问题与返工风险
可按模块与团队约定自定义输出结构,统一模板后全员调用,文档质量始终如一
输入短短一句功能说明,即刻生成完整成稿,显著缩短研发、评审与交付周期
为代码审查与新人成长提供一致知识库,减少口头解释,沉淀团队最佳实践
质量检查环节自动识别缺失字段和歧义表述,提醒补全,保持说明客观准确

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

AI 提示词价格
¥20.00元
先用后买,用好了再付款,超安全!

您购买后可以获得什么

获得完整提示词模板
- 共 548 tokens
- 2 个可调节参数
{ 方法名称 } { 功能描述 }
获得社区贡献内容的使用权
- 精选社区优质案例,助您快速上手提示词
使用提示词兑换券,低至 ¥ 9.9
了解兑换券 →
限时半价

不要错过!

半价获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59