iOS 图表子类 Markerview 使用 Swift 总是在“xxx-Swift.h”中构建错误
Posted
技术标签:
【中文标题】iOS 图表子类 Markerview 使用 Swift 总是在“xxx-Swift.h”中构建错误【英文标题】:iOS Charts subclass Markerview use Swift always Build Error in "xxx-Swift.h" 【发布时间】:2020-04-29 10:24:21 【问题描述】:MarkerView在“Charts”框架中,当我用swift子类化MarkerView时,会在“Project-Swift.h”中出现Build Error strong> 文件,“Project-Swift.h” 由 Xcode 自动生成。
在“TestMV.swift”文件中:
import UIKit
import Charts
class TestMV: MarkerView
在 “ProjectName-Swift.h” 文件中:
SWIFT_CLASS("_TtC9KCTFunFit6TestMV")
@interface TestMV : ChartMarkerView
- (nonnull instancetype)initWithFrame:(CGRect)frame
OBJC_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder
OBJC_DESIGNATED_INITIALIZER;
@end
在“图表”框架中
import Foundation
import CoreGraphics
import AppKit
@objc(ChartMarkerView)
open class MarkerView: NSUIView, IMarker
open var offset: CGPoint = CGPoint()
@objc open weak var chartView: ChartViewBase?
open func offsetForDrawing(atPoint point: CGPoint) -> CGPoint
.......
TestMV 子类 Markerview 在 "TestMV.swift"
“ProjectName-Swift.h”中的构建总是出错
“图表”框架中的Markerview
【问题讨论】:
你导入ChartMakerView
依赖了吗?或者您可能需要先创建ChartMakerView
类
请将代码包含为文本而不是图像。这样搜索引擎就可以对其进行索引,并且屏幕阅读器也可以工作。
@BDL 感谢您的建议
@Siarhei 已经重新添加了相关信息,不知道是否清楚
【参考方案1】:
尝试将 @interface TestMV : ChartMarkerView
重命名为 @interface TestMV : MarkerView
,因为它是在 TestMV 类中定义的。
供将来参考,a similar question can be found here。
【讨论】:
@interface TestMV : ChartMarkerView,这是 Xcode 在“ProjectName-Swift.h”中自动生成的,我无法修改【参考方案2】:#import <Charts/Charts-Swift.h>
【讨论】:
以上是关于iOS 图表子类 Markerview 使用 Swift 总是在“xxx-Swift.h”中构建错误的主要内容,如果未能解决你的问题,请参考以下文章