- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在这些代码行上遇到错误。谢谢
This is the first line of code
[ar exchangeObjectAtIndex:i withObjectAtIndex:n];
这是我得到的错误
use of undeclared identifier 'ar'
下一段代码
-(NSMutableArray*)createCardTypeDeck: {
这是我得到的错误
expected identifier
这是下一个
-(void)updateCard: (UIButton*) card, cardType: (int) cardType (
这是错误
Expected method body
这是最后一个
@end
这是一个奇怪的错误
Missing '@end'
感谢大家的帮助如果您还没有 guest ,我是编码新手。
#import "GameViewController.h"
@interface GameViewController ()
@end
@interface NSArray(Shuffle)
-(NSArray *)shuffledArray;
@end
@implementation GameViewController
-(void)shuffleArray: (NSMutableArray*)arr {
NSUInteger count = [arr count];
for (NSUInteger i = 0; i < count; ++i) {
// Select a random element between i and end of array to swap with.
int nElements = count - i;
int n = (arc4random() % nElements) + i;
[ar exchangeObjectAtIndex:i withObjectAtIndex:n]; //this is where I get the first error.)
}
}
-(NSMutableArray*)createCardTypeDeck: { //This is the second one.
NSMutableArray *cardTypes = [NSMutableArray arrayWithCapacity:8];
for (int i = 0; i < 4; i++) {
// Add the same number twice, for a total 8 objects added
[cardTypes addObject:[NSNumber numberWithInteger:i]];
[cardTypes addObject:[NSNumber numberWithInteger:i]];
}
return cardTypes;
}
// Take in /a/ card and the type, so it will work for all cards;
// don't add the card to the view here. Note there is no hard-coding of
// card1..card8 and thus there is NO NEED to duplicate this method 8 times!
-(void)updateCard: (UIButton*) card, cardType: (int) cardType ( (The third error.)
{
// The imageName and UIImage creation could be further extracted but
// this should be sufficient to show how much common code (and copy'n'paste)
// can be eliminated - resulting in shorter and more readable code.
NSString *imageName;
switch (cardType) {
case 0:
imageName = @"cell phone.jpeg";
break;
case 1:
imageName = @"Dinasore.jpeg";
break;
case 2:
imageName = @"jump Rope.jpeg";
break;
case 3:
imageName = @"monkey.jpeg";
break;
default:
image = nil; // but really an error of some sort
break;
}
UIImage *image = [UIImage imageNamed:imageName];
[card setImage:image forState:UIControlStateNormal];
}
- (void)viewDidLoad
{
{
// Create card/cardType deck, values -> [0, 0, 1, 1, 2, 2, 3, 3]
NSMutableArray *cardTypes = [self createCardTypeDeck];
// Shuffle the card types, result e.g. -> [2, 1, 0, 3, 2, 3, 0, 1]
[self shuffleArray: cardTypes];
// At least we only use the names once now
NSArray *cards = [NSArray arrayWithObjects:
card1, card2, card3, card4,
card5, card6, card7, card8, nil];
// For each card, assign it an image and otherwise finish adding it
for (int i = 0; i < 8; i++) {
// Get now shuffled cardType and this index
// (We know that only values 0..3 will appear and each will appear
// exactly twice - as only those values, and that multiplicity,
// have been added to the original array before shuffling.)
int cardType = [[cardTypes objectAtIndex:i] intValue];
// Get the card to apply the changes to, and do so
UIButton* card = [cards objectAtIndex:i];
[self updateCard:card withType:cardType];
// Then add the card view
[self.view addSubview:card];
}
card1Selected.hidden = YES;
card2Selected.hidden = YES;
card3Selected.hidden = YES;
card4Selected.hidden = YES;
card5Selected.hidden = YES;
card6Selected.hidden = YES;
card7Selected.hidden = YES;
card8Selected.hidden = YES;
card1Type = arc4random() %4;
card2Type = arc4random() %4;
card3Type = arc4random() %4;
card4Type = arc4random() %4;
card6Type = arc4random() %4;
card7Type = arc4random() %4;
card8Type = arc4random() %4;
[self Card1SelectedType];
[self Card2SelectedType];
[self Card3SelectedType];
[self Card4SelectedType];
[self Card5SelcetedType];
[self Card6SelectedType];
[self Card7SelectedType];
[self Card8SelectedType];
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end //and this is the last error
最佳答案
首先,当您调用 [ar exchangeObjectAtIndex:i withObjectAtIndex:n]; 时,您会收到该错误,这意味着编译器不知道不存在名为“ar”的变量。您是否在任何时候创建了名为“ar”的变量?
其次,创建不带参数的函数的方式如下:
- (NSMutableArray*)createCardTypeDeck {
}
或者,如果您确实希望它接受一个参数,例如 NSString,您可以这样做:
- (NSMutableArray*)createCardTypeDeck:(NSString *)someString {
}
createCardTypeDeck 之后有“:”,但没有提供参数,因此要么像上面那样定义一个参数,要么删除 :。
第三,你的 updateCard 方法有一个 ( 而不是 { 作为方法主体,它应该是这样的:
- (void)updateCard: (UIButton*) card, cardType: (int) cardType {
}
解决这个问题也应该可以解决您的@end问题。
关于objective-c - No Visible @interface for 'GameViewController' 声明选择器 'createCardTypeDeck',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25459471/
我制作了一个 DIV 和 visibility: hidden 并附加了一个 ::before 这个 DIV 的伪元素 visibility : 可见。这在 Firefox、Chrome 和 Safa
我正在使用 jquery 可见选择器来检查子元素是否可见。但令人惊讶的是 .is("visible") 和 .is(":visible") 在使用 css Visibility:hidden 时显示不
我有这个代码 #checkboxDIV { visibility: hidden; } #itemcard:hover #checkboxDIV {
我有一个用 ul 创建的菜单/li列出。 为了创造一个不错的效果,我有以下 css: #menu ul { /* ... */ visibility:hidden; /* ..
我想要的是,当我点击 Dashboard Button 时,它会像 SlidingDrawer 一样打开,打开后再次点击它会关闭。我使用这个自定义抽屉是因为 SlidingDrawer 已弃用。 现在
如何使用 jQuery 只选择可见元素? jQuery 选择器 :visible 和 :hidden 只尊重 display:none 作为真的隐藏?不是可见性:隐藏或可见性:可见。 我知道它们在技术
为什么我的 $('#myDiv').css('visibility', 'visible'); 不起作用? $('#clickdiv').click(function() { alert($(
在 $(document).ready 函数中通过 JavaScript 将子容器设置为 visibility: visible 时,我遇到了一个奇怪的问题。 问题是: 我有一个父元素,它有 boot
在 jQuery 中: e.is(':visible'); 检查元素是否显示。 jQuery 中是否有一个函数可以检查元素是否具有隐藏或可见属性可见性? 现在我必须自己实现这个功能。但我想使用 jQu
我在 mvc 中使用一个帖子表单,在帖子中我想显示一个隐藏的 div(惊喜)。 我正在使用 js/jquery 来显示 div,它可以在所有浏览器中工作,除了 mac 上的 safari :( 我现在
我似乎无法获得我的 jquery {{NotificationNavDot}} 功能正常工作! 在下面找到帮助文件: {{NotificationNavDot}} 在下面找到我的帮助
WPF 中的 Visibility.Collapsed 和 Visibility.Hidden 有什么区别? 最佳答案 不同之处在于,Visibility.Hidden隐藏了控件,但保留了它在布局中占
我有一个 if 语句来检查我的 div 下面是否没有任何可见内容,如果是,我会隐藏子元素的同级元素。 var $remainingprojects = $searchproject.s
这是我的菜单模型 HTML Menu 1 (overflow:hidden) Item 1 submenu 1 submen
编辑 3 实际上,我根本不需要弄乱可见性/不透明度...所以我删除了那些行(如编辑 2 所示)...添加了动画 -播放状态:暂停/运行.... 得到了我想要的效果... 编辑 2:感谢 Gineto
在我的应用程序中有一个广告 WebView ,它在 Activity 开始时调用一个 url。一切都很好,除了一件小事,它更像是一个可见性问题......所以问题是,当我开始 Activity 时,我
根据 the "visible" binding documentation , 如果 visible 的值为 false,Knockout 使用 display: none 隐藏元素。我怎样才能让它
* { margin: 0; padding: 0; border: 0; } .navBar { background-color: #2A2A2A; min-width: 10
android 布局使用 layout_weight。我的目标是所有组件的 1/3,但有时页脚实际上设置为消失,然后可见。从 gone 设置为 visible 时,权重计算如何工作?我没有看到具有 1
我有两个单选按钮,两个文本框和一个按钮。 当我点击第一个按钮时,应该只会出现一个文本框,当我点击第二个按钮时,应该会出现两个文本框。 但我想使用 visibility:hidden|visible 属
我是一名优秀的程序员,十分优秀!