2014-04-19 111 views
0

其他人請檢查我的代碼嗎?必須有一些錯誤。還沒有答案。任何人有任何其他想法?我收到了SecondViewController.m底部標題中的錯誤消息。我不確定爲什麼,我試圖查找它,但我找不到任何東西。我認爲我宣佈了「showDiceNumber」是什麼,但可能不是。這是我的應用程序的第二頁,但這不應該導致問題,因爲錯誤是在第二個視圖控制器。我非常感謝審查代碼並在這種情況下幫助我的人。非常感謝!「DiceView」沒有可見的@interface聲明選擇器「showDiceNumber」。

(順便說一句,我拿出超視做負載和繪圖代碼,因爲他們是無用的,佔去了太多的空間,他們在我在Xcode編碼雖然。)

SecondViewController.h -

#import <UIKit/UIKit.h> 
#import "DiceView.h" 

@interface SecondViewController : UIViewController 

@property (strong, nonatomic) IBOutlet UIButton *rollButton; 
@property (strong, nonatomic) IBOutlet UILabel *sumLabel; 
@property (strong, nonatomic) IBOutlet DiceView *firstDiceView; 
@property (strong, nonatomic) IBOutlet DiceView *secondDiceView; 

@end 

SecondViewController.m -

#import "SecondViewController.h" 
#import "DiceDataController.h" 

@interface SecondViewController() 

@end 

@implementation SecondViewController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
if (self) { 
    // Custom initialization 
} 
return self; 
} 


- (IBAction)rollClicked:(id)sender { 

DiceDataController *diceController = [[DiceDataController alloc] init]; 

int firstNumber = [diceController getDiceNumber]; 
int secondNumber = [diceController getDiceNumber]; 

[self.firstDiceView showDiceNumber:firstNumber]; <---- error* 
[self.secondDiceView showDiceNumber:secondNumber]; <----- error* 
} 

@end 

DiceView.h -

#import <UIKit/UIKit.h> 

@interface DiceView : UIView 

#pragma mark - Properties 

@property (strong, nonatomic) UIImageView *diceImageView; 

#pragma mark - Methods 

- (void)showDiceNumber:(int)num; 

@end 

DiceView.m-

#import "DiceView.h" 

@implementation DiceView 

- (id)initWithFrame:(CGRect)frame 
{ 
self = [super initWithFrame:frame]; 
if (self) { 
    // Initialization code 

} 
return self; 
} 

- (id)initWithCoder:(NSCoder *)aDecoder 
{ 
self = [super initWithCoder:aDecoder]; 
if (self) { 
    // Initialization code 

    // create uiimageview and assign it to our property 
    self.diceImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0,  self.frame.size.width, self.frame.size.height)]; 

    // add the imageview to the view 
    [self addSubview:self.diceImageView]; 

} 
return self; 
} 

- (void)showDiceNumber:(int)num 
{ 
// construct filename based on input param 
NSString *fileName = [NSString stringWithFormat:@"dice%d.png", num]; 

// set the image to the uiimageview 
self.diceImageView.image = [UIImage imageNamed:fileName]; 
} 
@end 

DiceDataController.h-

#import <Foundation/Foundation.h> 

@interface DiceDataController : NSObject 

-(int)getDiceNumber; 

@end 

DiceDataController.m-

#import "DiceDataController.h" 

@implementation DiceDataController 

-(int)getDiceNumber 
{ 
int r = (arc4random() % 6) +1; 
return r; 
} 
@end 
+0

有人請幫忙嗎?這可能是愚蠢的,但我找不到錯誤。 – user3496401

+0

@MHHaze你可以看一下嗎?你以前幫過我。 – user3496401

+0

你發佈的內容看起來正確。有時Xcode會感到困惑。嘗試關閉您的項目並退出Xcode。然後重新啓動,看看它是否有幫助。 – rmaddy

回答

0

這裏是最後的方式,你可以嘗試一下,沉默了錯誤,但可能會導致應用崩潰。這種加入SecondViewController.m:

@interface DiceView (IShouldHaveThis) 

- (void)showDiceNumber:(int)num; 

@end 

通過在一個類別重新聲明的方法,將無聲的錯誤(這是老時間警告,所以可以保持沉默),但你應該throughly檢查你的代碼是非常確定這是實際工作。

+0

如何處理那裏的UIView?它是@interface DiceView:UIView。另外,什麼是(ISHouldHaveThis)? – user3496401

+0

@ user3496401這是一個不需要'UIView'部分的類別聲明。 –

+0

它沒有工作。現在我有4個錯誤在底部而不是2 – user3496401

0

有你在SecondViewController.m

試圖

#import DiceView.h 

或者也許你的Xcode項目文件被搞砸了,你應該只創建一個新的項目和源代碼文件複製到它。

+0

我剛試過,它沒有工作。現在在SecondViewController.m底部的最後三行代碼中有3個相同的錯誤 – user3496401

+0

有三個錯誤?這聽起來像也許你有一些與Xcode項目文件搞砸了。添加#import後顯示的新錯誤消息是什麼? –

+0

現在錯誤消失了,我猜Xcode會感到困惑。其他錯誤仍然存​​在,雖然 – user3496401

1

這個問題的代碼沒有問題。

我已經看到類似這樣的錯誤,在源代碼中包含奇怪的非打印字符。

我不知道在Xcode中顯示它們的方法,但是如果您在編輯器(如文本處理程序(免費))中打開.h和.m文件並打開「show invisibles」,您可能會看到不尋常的東西 - 可能在進口報表附近或周圍。

如果存在,刪除它們應該可以解決問題。

我不確定它們是如何到達的 - 它可能是從網絡複製粘貼時拾取的奇怪東西,也可能是Xcode中的一些鍵盤快捷方式與某些鍵盤快捷鍵非常相似,簡體中文電子空間或任何它。

+0

感謝您的這一點。然而,我甚至不知道該找什麼,因爲這對我來說都是新的。任何想法,我需要刪除的不尋常的東西? – user3496401

+0

這真的很明顯 - 任何不是空格,製表符或換行符的東西。 – jrturton

+0

我有,但我不知道我在找什麼。我應該編輯帖子並粘貼文本爭吵顯示隱形代碼嗎? – user3496401

相關問題