首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode 6.3 -汽车性能综合不会合成性能

Xcode 6.3 -汽车性能综合不会合成性能
EN

Stack Overflow用户
提问于 2015-05-20 00:07:28
回答 2查看 8.5K关注 0票数 8

错误:自动属性综合不会合成属性'delegate‘。它将由其超类实现,使用@dynamic来确认意图。

带有错误的代码: @property (nonatomic, weak) id<JBBarChartViewDelegate> delegate;

任何帮助都将不胜感激,谢谢!

这里是我的代码:

代码语言:javascript
复制
#import "JBChartView.h"

@class JBBarChartView;

@protocol JBBarChartViewDataSource <JBChartViewDataSource>

@required

/**
 *  The number of bars in a given bar chart is the number of vertical views shown along the x-axis.
 *
 *  @param barChartView     The bar chart object requesting this information.
 *
 *  @return Number of bars in the given chart, displayed horizontally along the chart's x-axis.
 */
- (NSUInteger)numberOfBarsInBarChartView:(JBBarChartView *)barChartView;

@optional

/**
 *  A UIView subclass representing the bar at a particular index.
 *
 *  Default: solid black UIView.
 *
 *  @param barChartView     The bar chart object requesting this information.
 *  @param index            The 0-based index of a given bar (left to right, x-axis).
 *
 *  @return A UIView subclass. The view will automatically be resized by the chart during creation (ie. no need to set the frame).
 */
- (UIView *)barChartView:(JBBarChartView *)barChartView barViewAtIndex:(NSUInteger)index;

@end

@protocol JBBarChartViewDelegate <JBChartViewDelegate>

@required

/**
 *  Height for a bar at a given index (left to right). There is no ceiling on the the height;
 *  the chart will automatically normalize all values between the overal min and max heights.
 *
 *  @param barChartView     The bar chart object requesting this information.
 *  @param index            The 0-based index of a given bar (left to right, x-axis).
 *
 *  @return The y-axis height of the supplied bar index (x-axis)
 */
- (CGFloat)barChartView:(JBBarChartView *)barChartView heightForBarViewAtIndex:(NSUInteger)index;

@optional

/**
 *  Occurs when a touch gesture event occurs on a given bar (chart must be expanded).
 *  and the selection must occur within the bounds of the chart.
 *
 *  @param barChartView     A bar chart object informing the delegate about the new selection.
 *  @param index            The 0-based index of a given bar (left to right, x-axis).
 *  @param touchPoint       The touch point in relation to the chart's bounds (excludes footer and header).
 */
- (void)barChartView:(JBBarChartView *)barChartView didSelectBarAtIndex:(NSUInteger)index touchPoint:(CGPoint)touchPoint;
- (void)barChartView:(JBBarChartView *)barChartView didSelectBarAtIndex:(NSUInteger)index;

/**
 *  Occurs when selection ends by either ending a touch event or selecting an area that is outside the view's bounds.
 *  For selection start events, see: didSelectBarAtIndex...
 *
 *  @param barChartView     A bar chart object informing the delegate about the deselection.
 */
- (void)didDeselectBarChartView:(JBBarChartView *)barChartView;

/**
 *  If you already implement barChartView:barViewAtIndex: delegate - this method has no effect.
 *  If a custom UIView isn't supplied, a flat bar will be made automatically (default color black).
 *
 *  Default: if none specified - calls barChartView:barViewAtIndex:.
 *
 *  @param barChartView     The bar chart object requesting this information.
 *  @param index            The 0-based index of a given bar (left to right, x-axis).
 *
 *  @return The color to be used to color a bar in the chart.
 */
- (UIColor *)barChartView:(JBBarChartView *)barChartView colorForBarViewAtIndex:(NSUInteger)index;

/**
 *  The selection color to be overlayed on a bar during touch events.
 *  The color is automatically faded to transparent (vertically). The property showsVerticalSelection
 *  must be YES for the color to apply.
 *
 *  Default: white color (faded to transparent).
 *
 *  @param barChartView     The bar chart object requesting this information.
 *
 *  @return The color to be used on each bar selection.
 */
- (UIColor *)barSelectionColorForBarChartView:(JBBarChartView *)barChartView;

/**
 *  Horizontal padding between bars.
 *
 *  Default: 'best-guess' algorithm based on the the total number of bars and width of the chart.
 *
 *  @param barChartView     The bar chart object requesting this information.
 *
 *  @return Horizontal width (in pixels) between each bar.
 */
- (CGFloat)barPaddingForBarChartView:(JBBarChartView *)barChartView;

@end

@interface JBBarChartView : JBChartView

//These Two Lines Have The Error
@property (nonatomic, weak) id<JBBarChartViewDataSource> dataSource;
@property (nonatomic, weak) id<JBBarChartViewDelegate> delegate;
//.

/**
 *  Vertical highlight overlayed on bar during touch events.
 *
 *  Default: YES.
 */
@property (nonatomic, assign) BOOL showsVerticalSelection;

/*
 *  Bars can be (vertically) positoned top to bottom instead of bottom up.
 *  If this property is set to YES, both the bar and the selection view will be inverted.
 *  For the inverted orientation to take effect, reloadData must be called.
 *
 *  Default: NO.
 */
@property (nonatomic, assign, getter=isInverted) BOOL inverted;

@end
EN

回答 2

Stack Overflow用户

发布于 2015-05-20 01:21:39

您可以使用显式合成或动态修复此类警告。以下是代码:

代码语言:javascript
复制
@interface JBBarChartView : JBChartView

//These Two Lines Have The Error
@property (nonatomic, weak) id<JBBarChartViewDataSource, superclassDataSourceIfAvailable> dataSource;
@property (nonatomic, weak) id<JBBarChartViewDelegate, superclassDelegateIfAvailable> delegate;

@end

//MARK:dynamic
@implementation JBBarChartView
@dynamic dataSource;
@dynamic delegate;
@end

//MARK:explicitly synthesize
@implementation JBBarChartView
@synthesize dataSource;
@synthesize delegate;
@end

请查看此文档以查找更多关于clang的信息。

票数 11
EN

Stack Overflow用户

发布于 2015-05-20 01:18:29

如果我们查看JBChartView,我们可以看到它已经有一个delegate (类型为id<JBChartViewDelegate>)和dataSource (类型为id<JBChartViewDataSource>)。这里的JBBarChartView试图将这些属性重新声明为符合更具体的协议。我认为覆盖目标C中的@property声明对同样的问题有一个很好的答案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30338154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档