- Registriert
- 13.04.09
- Beiträge
- 1.365
Ich bin momentan am Objective C bzw. Cocoa für Mac und iPhone-Lernen
Jetzt habe ich mal von cocoa-coding.de die Lotto-App für den Mac gebastelt - funktioniert. Jetzt wollte ich das auch fürs iPhone umsetzen. Da eben statt Textfelder Labels, das ganze in eine Utility Application.
Mal hier die beiden MainViews:
Die zugehörigen Elemente sind auch alle schön im Interface Builder erstellt und gelinkt. Die funktionieren auch - wenn ich jetzt ganz unten bei zufall1 setText: das mit zArray durch einen NSString ersetze, und dann in der App den Button "Spielen" klicke, zeigt er den NSString beim Label an. Wenn ich jetzt allerdings die App wie oben gezeigt ausführe, und dann auf "Spielen" klicke, schließt sich die App sofort. Fehlerbericht in der Debug-Konsole:
Damit kann ich jetzt allerdings reichlich wenig anfangen.
Wäre jemand so nett, mir zu erklären, was die Meldung besagt, und was ich im Code falschgemacht habe?
Vielen vielen Dank schonmal

Mal hier die beiden MainViews:
//
// MainView.h
//
// Created by ... on 25.09.09.
// Copyright 2009 __MyCompanyName__. All rights reserved.
//
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
@interface MainView : UIView {
IBOutlet UILabel *zufall1;
IBOutlet UILabel *zufall2;
IBOutlet UILabel *zufall3;
IBOutlet UILabel *zufall4;
IBOutlet UILabel *zufall5;
IBOutlet UILabel *zufall6;
}
- (IBAction)initializeRandom;
- (IBAction)spielen;
@end
//
// MainView.m
//
// Created by ... on 25.09.09.
// Copyright 2009 __MyCompanyName__. All rights reserved.
//
#import "MainView.h"
@implementation MainView
- (IBAction)initializeRandom {
}
- (IBAction)spielen {
NSMutableArray *zArray;
zArray = [[NSMutableArray alloc] init];
[zArray retain];
NSNumber *zZahl;
int x ;
int a ;
bool valid;
for (a = 0; a < 6; a++)
{
valid = false;
while (valid == false)
{
zZahl = [[NSNumber alloc] initWithIntrandom() %49) +1];
valid = true;
for (x = 0;x < [zArray count]; x++)
{
if ([zZahl intValue] == [[zArray objectAtIndex:x] intValue])
{
valid = false;
[zZahl release];
break;
}
}
}
[zArray addObject: zZahl];
[zZahl release];
}
[zufall1 setText:[zArray objectAtIndex:0]];
[zufall2 setText:[zArray objectAtIndex:1]];
[zufall3 setText:[zArray objectAtIndex:2]];
[zufall4 setText:[zArray objectAtIndex:3]];
[zufall5 setText:[zArray objectAtIndex:4]];
[zufall6 setText:[zArray objectAtIndex:5]];
[zArray release];
}
- (void) awakeFromNib {
srandom(time(NULL));
}
@end
Die zugehörigen Elemente sind auch alle schön im Interface Builder erstellt und gelinkt. Die funktionieren auch - wenn ich jetzt ganz unten bei zufall1 setText: das mit zArray durch einen NSString ersetze, und dann in der App den Button "Spielen" klicke, zeigt er den NSString beim Label an. Wenn ich jetzt allerdings die App wie oben gezeigt ausführe, und dann auf "Spielen" klicke, schließt sich die App sofort. Fehlerbericht in der Debug-Konsole:
2009-09-25 20:24:03.344 Lotto-iPhone[1661:207] *** -[NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0xe36130
2009-09-25 20:24:03.346 Lotto-iPhone[1661:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0xe36130'
Damit kann ich jetzt allerdings reichlich wenig anfangen.
Wäre jemand so nett, mir zu erklären, was die Meldung besagt, und was ich im Code falschgemacht habe?

Vielen vielen Dank schonmal
