You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Xcode通过SwiftPackage访问API数据库表?类型访问报错求助

问题解决方法

核心错误原因

你在HomeViewModel中错误地将CLT_CLT_CLIENT当作APINetoparkclient类的嵌套类型来引用,但实际上它是apinetoparkclient模块下的顶级公共结构体,不属于类的内部成员。

具体修正步骤

1. 修正类型引用代码

将HomeViewModel中的类型声明:

@Published var societies: [APINetoparkclient.CLT_CLT_CLIENT] = []

替换为以下两种方式之一:

  • 方式一(推荐,已导入模块可直接使用):
    @Published var societies: [CLT_CLT_CLIENT] = []
    
  • 方式二(明确指定模块名):
    @Published var societies: [apinetoparkclient.CLT_CLT_CLIENT] = []
    

2. 完善数据模型的访问权限

你的CLT_CLT_CLIENT结构体中,raisonsociale属性是默认的internal权限,外部模块无法访问该属性,需要改为public:

public struct CLT_CLT_CLIENT: Identifiable, Codable {
    public let id: UUID?
    public var raisonsociale: String // 添加public修饰符
    
    public init(id: UUID?, raisonsociale: String) {
        self.id = id
        self.raisonsociale = raisonsociale
    }
}

3. 确保Xcode缓存清理(可选但推荐)

如果修改后仍有问题,执行以下操作:

  • 清除Xcode的Derived Data:Xcode > Settings > Locations > Derived Data,点击路径旁的箭头打开文件夹并删除所有内容
  • 重启Xcode
  • 在项目的Package Dependencies中,右键点击apinetoparkclient选择Update Package

修正后的完整HomeViewModel代码

import Foundation
import apinetoparkclient

class HomeViewModel: ObservableObject {
    @Published var societies: [CLT_CLT_CLIENT] = []
    @Published var selectedTab: HomeTab = .parc

    enum HomeTab {
        case parc
        case societies
        case equipment
        case users
        case reports
        case settings
    }

    func fetchSocieties() {
        APINetoparkclient.shared.fetchSocieties { result in
            switch result {
            case .success(let societies):
                DispatchQueue.main.async {
                    self.societies = societies
                }
            case .failure(let error):
                print("Error fetching societies:", error.localizedDescription)
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者Élodie Gagé

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 12:31:08