选择器'circleOfButtons:buttonSize:radius:'没有已知的类方法
Posted
技术标签:
【中文标题】选择器\'circleOfButtons:buttonSize:radius:\'没有已知的类方法【英文标题】:No known class method for selector 'circleOfButtons:buttonSize:radius:'选择器'circleOfButtons:buttonSize:radius:'没有已知的类方法 【发布时间】:2017-03-31 10:46:12 【问题描述】:SGView
(下面)中的函数circleOfButtons:buttonSize:radius:
是从ParentView
调用的,我希望ParentView
定义SGView
中的值,只要ParentView
发送消息到SGView
.
这是实现文件。
#import <UIKit/UIKit.h>
#import “ParentView.h"
#import "SGView.h"
@implementation ParentView : UIView
- (id)initWithFrame:(CGRect)frame
self = [super initWithFrame:[UIScreen mainScreen].bounds];
if (self)
self.backgroundColor = [UIColor lightGrayColor];
int count = 5;
CGFloat size = 80.0;
CGFloat radius = 68;
SGView *myView = [SGView circleOfButtons:count buttonSize:size radius:radius];
[self addSubview:myView];
return self;
SGView将多个UIButton排成一圈,本质上是这样的
#import "SGView.h"
@implementation SGView : UIView
+(id)circleOfButtons:(int)buttonCount buttonSize:(CGFloat)buttonSize circleRadius:(CGFloat)circleRadius
UIView *multipleViews = [self new];
// … circular geometry …
[multipleViews addSubview:circleButton];
return multipleViews;
@end
错误消息 - 在SGView *myView
行 - 是:
选择器没有已知的类方法 'circleOfButtons:buttonSize:radius:'
我的猜测是编译器想要在接口中声明。我正在通过these tutorials 尝试确定接口文件应该是什么样子,虽然有 6 个 SO 问题可能已经回答了我的问题,但只有this one 有一个似乎不太相关的示例。
这是我的接口文件。
#import <UIKit/UIKit.h>
#import "ViewController.h"
#import "SGView.h"
@interface ParentView : UIView
+(id)circleOfButtons:(int)buttonCount buttonSize:(CGFloat)buttonSize circleRadius:(CGFloat)circleRadius;
@end
谁能举例说明这个接口文件应该是什么样子?谢谢。
更新
这里是SGView.h
(已修改)
#import <UIKit/UIKit.h>
@interface SGView : UIView
+(id)circleOfButtons:(int)buttonCount buttonSize:(CGFloat)buttonSize circleRadius:(CGFloat)circleRadius;
@end
我也注意到如果声明
SGView *myView = [SGView circleOfButtons:count buttonSize:size radius:radius];
改为
SGView *myView = [self circleOfButtons:count buttonSize:size radius:radius];
错误变为
“ParentView”没有可见的@interface 声明选择器“circleOfButtons:buttonSize:radius:”
以前是
选择器'circleOfButtons:buttonSize:radius:'没有已知的类方法
【问题讨论】:
你必须贴花 +(id)circleOfButtons:(int)buttonCount buttonSize:(CGFloat)buttonSize circleRadius:(CGFloat)circleRadius;在 SGView.h 类中 仁,@ron27,我在 SGView 中声明并在 ParentView 中删除了声明,但错误仍然存在 你在SGView.h文件中写了什么? 仁,看看我的更新 【参考方案1】:你在打电话
SGView *myView = [SGView circleOfButtons:count buttonSize:size radius:radius];
应该是
SGView *myView = [SGView circleOfButtons:count buttonSize:size circleRadius:radius];
【讨论】:
仁,我现在正在添加一个委托以使按钮工作。如果你能抽出一点时间,你可以看看这个***.com/q/43151212/2348597【参考方案2】:在SGView.h
文件中声明+(id)circleOfButtons:(int)buttonCount buttonSize:(CGFloat)buttonSize circleRadius:(CGFloat)circleRadius
。
现在您将获得ParentView
类中的方法。
编码愉快 :) .
【讨论】:
以上是关于选择器'circleOfButtons:buttonSize:radius:'没有已知的类方法的主要内容,如果未能解决你的问题,请参考以下文章
winform怎么实现Ctrl键和回车键绑定一个按钮。意思就是同时按住两个键,相当于点击butto
css 顶部按钮 - http://janhoek.com/a-simple-smooth-back-to-top-button-for-genesis/
xml 按钮圆角。字体:https://stackoverflow.com/questions/43494108/round-corner-google-sign-in-button-android