Swift创建Model时Xcode报“Inheritance from non-protocol type 'PFObject'”错误求助
解决Swift中"Inheritance from non-protocol type 'PFObject'"错误
问题根源
- 语法规则冲突:
PFObject是Parse SDK中的类,而Swift的struct仅能遵守协议(protocol),无法继承类。你在struct Category的声明中写: ParseObject, PFObject,本质是试图让结构体继承类,这违反了Swift的语法规则,直接触发报错。 - 框架冗余导入:你同时导入了
ParseSwift和Parse两个框架。ParseSwift是Parse专为Swift打造的原生封装,ParseObject协议已经完全覆盖了PFObject的核心功能,无需同时引入旧的Parse框架。
修正后的代码
import Foundation import ParseSwift import SwiftUI struct Category: ParseObject { // ParseObject协议要求的必填属性 var originalData: Data? var objectId: String? var createdAt: Date? var updatedAt: Date? var ACL: ParseACL? // 自定义业务字段 var name: String = "" var cover: String = "" var color: String = "" var createdBy: String = "" } extension Category { init(name: String, cover: String, color: String, createdBy: String) { self.name = name self.cover = cover self.color = color self.createdBy = createdBy } }
额外注意
- 移除
import Parse,避免新旧框架的API冲突 - 优先使用
ParseSwift提供的API,它更贴合Swift的语法习惯,比旧版Parse框架的兼容性更好
内容的提问来源于stack exchange,提问作者alch_coder
相关产品推荐
相关产品推荐

