[英]Xcode objective-C errors need some help :)
Ok so been trying to figure this out for sometime I've managed to get it down to these 3 errors and Ive been looking for a fix but nothing is working can anyone help me with this?好吧,我一直在努力解决这个问题,我设法将其归结为这 3 个错误,我一直在寻找解决方法,但没有任何工作可以帮助我解决这个问题吗?
Im trying to compile something and this is part of it this is all i need fixed to get it to work but i don't know what to do.我正在尝试编译一些东西,这是其中的一部分,这是我需要修复的全部内容才能使其正常工作,但我不知道该怎么做。
Also this is not my code if you want to see the original follow the link credit goes to Hamzasood这也不是我的代码,如果您想查看原始链接,请点击链接信用转到 Hamzasood
Hamzasood custom watch face Hamzasood 定制表盘
i put the error next to the code so look for <---//ERROR there are only 3我把错误放在代码旁边,所以寻找 <---//ERROR there only 3
Here are the files below 1.OnozOmgEditingGuideView.h以下是 1.OnozOmgEditingGuideView.h 下面的文件
//
// OnozOmgEditingGuideView.h
// CustomWatchFaceTest
//
// Created by Hamza Sood on 17/08/2015.
// Copyright © 2015 Hamza Sood. All rights reserved.
#import <UIKit/UIKit.h>
@class
@interface OnozOmgEditingGuideView : UIView { <---//expected identifier
UIView *_topView;
UILabel *_topLabel;
UIView *_bottomView;
UILabel *_bottomLabel;
}
@end
/*!
Set the color shown by the top view.
The new color to be displayed
*/
- (void)setTopColor:(UIColor *)color;
/*!
Set the color shown by the bottom view.
@param color
The new color to be displayed
*/
- (void)setBottomColor:(UIColor *)color; <---//missing content for method declaration
Its missing content and is looking for something but I don't know I'm really new to this.它缺少内容并且正在寻找一些东西,但我不知道我真的很陌生。
2.OnozOmgEditingGuideView.m 2.OnozOmgEditingGuideView.m
//
// OnozOmgEditingGuideView.m
// CustomWatchFaceTest
//
// Created by Hamza Sood on 17/08/2015.
// Copyright © 2015 Hamza Sood. All rights reserved.
//
#import "OnozOmgEditingGuideView.h"
@implementation OnozOmgEditingGuideView { <---//Expected Method Body
/*
Initial setup steps:
1. Create the views and their corresponding labels
2. Set the label text
3. Constrain the views
*/
- (instancetype)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
// 1
__strong UIView **viewsToCreate[] = { &_topView, &_bottomView };
__strong UILabel **labelsToCreate[] = { &_topLabel, &_bottomLabel };
for (int i = 0; i < sizeof(viewsToCreate)/sizeof(UIView**); i++) {
UIView *view = [[UIView alloc]initWithFrame:CGRectZero];
[view setTranslatesAutoresizingMaskIntoConstraints:NO];
[self addSubview:view];
UILabel *label = [[UILabel alloc]initWithFrame:CGRectZero];
[label setTranslatesAutoresizingMaskIntoConstraints:NO];
[view addSubview:label];
NSLayoutAttribute labelAttributesToConstrain[] = { NSLayoutAttributeCenterX, NSLayoutAttributeCenterY };
for (int j = 0; j < sizeof(labelAttributesToConstrain)/sizeof(NSLayoutAttribute); j++) {
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:label
attribute:labelAttributesToConstrain[j]
relatedBy:NSLayoutRelationEqual
toItem:view
attribute:labelAttributesToConstrain[j]
multiplier:1
constant:0];
[constraint setActive:YES];
}
*viewsToCreate[i] = view;
*labelsToCreate[i] = label;
}
// 2
[_topLabel setText:@"First Colour"];
[_bottomLabel setText:@"Second Colour"];
// 3
NSString *constraintsToAdd[] = {
@"H:|[_topView]|",
@"H:|[_bottomView]|",
@"V:|[_topView]-(0)-[_bottomView(==_topView)]|"
};
NSDictionary *constraintsViewsDictionary = NSDictionaryOfVariableBindings(_topView, _bottomView);
for (int i = 0; i < sizeof(constraintsToAdd)/sizeof(NSString*); i++) {
[NSLayoutConstraint activateConstraints:[NSLayoutConstraint constraintsWithVisualFormat:constraintsToAdd[i]
options:0
metrics:nil
views:constraintsViewsDictionary]];
}
}
return self;
}
@class
- (void)setTopColor:(UIColor *)color {
[_topView setBackgroundColor:color];
}
- (void)setBottomColor:(UIColor *)color {
[_bottomView setBackgroundColor:color];
}
@end
and this one gives expected method body这一个给出了预期的方法体
like i said I'm not good with this so if you can please help:)就像我说的我不擅长这个所以如果你能帮忙:)
At the top of .h You have @class
compiler directive, without providing a name for the class that you're forward-declaring.在 .h 的顶部,您有@class
编译器指令,但没有为您正在前向声明的类提供名称。 The @class
is used to "forward declare" a class, which tells the compiler "this other class X will exist, so don't complain about not knowing all the details yet." @class
用于“前向声明”一个类,它告诉编译器“另一个类 X 将存在,所以不要抱怨还不知道所有细节。” Since you don't provide a name, the compiler gets confused, so you see an error on the next line.由于您没有提供名称,编译器会感到困惑,因此您会在下一行看到错误。 See this question: Objective-C: @class Directive before @interface?看到这个问题: Objective-C: @class Directive before @interface?
At the bottom of .m you have @class again for some reason... But the error seems to be because you put an open curly brace {
after @implementation
that isn't closed until after all the methods.在 .m 的底部,出于某种原因,您再次拥有 @class ......但错误似乎是因为您在@implementation
之后放置了一个开放的花括号{
,直到所有方法之后才关闭。 That shouldn't be there.那不应该在那里。 You use curly braces after @implementation if you want to declare instance variables.如果要声明实例变量,请在 @implementation 后使用花括号。 Not necessary for the methods.对于方法来说不是必需的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.