Xcode Objective-C错误需要一些帮助:)
好吧,一直试图弄清楚这一点有一段时间我已经设法把它归结为这3个错误,我一直在寻找修复,但没有任何工作,任何人都可以帮助我有了这个?Xcode Objective-C错误需要一些帮助:)
我试图编译的东西,这是它的一部分,这是我需要固定的所有工作,但我不知道该怎么办。
此外,这不是我的代码,如果你想看到原来按照链接归功于Hamzasood
Hamzasood custom watch face
我把错误的代码,以便寻找<旁边 - - //错误只有3
这里如下 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
其缺少的内容和正在寻找的东西,但我不知道我真的很新。
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
__span UIView **viewsToCreate[] = { &_topView, &_bottomView };
__span 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
而这一次给出了预期的方法体
就像我说我不擅长这个,所以如果你能请帮助:)
回答:
在.h的顶部您有@class
编译器指令,但未提供您正在声明的类的名称。 @class
用于“转发声明”类,它告诉编译器“这个其他类将存在,所以不要抱怨不知道所有的细节。”由于您没有提供名称,因此编译器会感到困惑,因此您会在下一行看到错误。 @class又出于某种原因 Objective-C: @class Directive before @interface?
在你拥有的.m底部... 但错误似乎是因为你把一个开放的大括号{
@implementation
后未关闭: 看到这个问题直到所有的方法。那不应该在那里。如果要声明实例变量,则在@implementation之后使用花括号。这些方法不需要。
以上是 Xcode Objective-C错误需要一些帮助:) 的全部内容, 来源链接: utcz.com/qa/266694.html