我建立一个基于主视图控制器(CalViewController)做一些数学,然后,有两个视图控制器的应用程序(DrinksViewController & FoodViewController) 。代码中的错误,但无法找出在哪里(价值不导入)
我建立CalViewController和DrinksViewController但是当我想要复制DrinksViewController建立FoodViewController(使用不同的数据相同视图)的错误出现了:“属性‘bouffon’在类型FoodViewController的对象未找到”。
鉴于在我的foodViewController.h中定义的'bouffon',然后由CalViewController导入。它适用于'CaloriesDepensees'(来自DrinksViewController的数据),但不适用于'bouffon'。我检查DrinksViewController.h和.m中的每一行,看起来它与FoodViewController.h和.m(显然具有不同的数据)完全相同。
自定义类别&故事板ID也是此视图控制器(在故事板,身份检查器中)的FoodViewController。
非常感谢您的帮助!
皮尔
这里CalViewController.h:
#import <UIKit/UIKit.h>
#import "CalAppDelegate.h"
#import "DrinksViewController.h"
#import "FoodViewController.h"
@interface CalViewController : UIViewController
{
double temps;
double distance;
double vitesse;
double poids;
NSString *caloriesText;
}
@property (weak, nonatomic) IBOutlet UITextField *saisieTemps;
@property (weak, nonatomic) IBOutlet UITextField *saisieDistance;
@property (weak, nonatomic) IBOutlet UITextField *saisiePoids;
@property (weak, nonatomic) IBOutlet UITextView *resultat;
@property (weak, nonatomic) IBOutlet UISwitch *saisieDefaut;
@property (weak, nonatomic) IBOutlet UILabel *poidsDefaut;
- (IBAction)tempsAction:(id)sender;
- (IBAction)distanceAction:(id)sender;
- (IBAction)defautAction:(id)sender;
- (IBAction)saisieReturn :(id)sender;
- (IBAction)calcul:(id)sender;
- (IBAction)paramSwitch:(id)sender;
- (IBAction)poidsAction:(id)sender;
@end
这里CalViewController.m:
@interface CalViewController()
@end
@implementation CalViewController
@synthesize resultat;
@synthesize saisieDistance;
@synthesize saisieTemps;
@synthesize saisiePoids;
@synthesize saisieDefaut;
@synthesize poidsDefaut;
double calories;
double factCal;
double vitesse;
double poidsDonne=75;
- (void)viewDidLoad
{
[super viewDidLoad];
calories=1.0;
if (saisieDefaut.on) {
saisiePoids.hidden=YES;
poidsDefaut.hidden=NO;
}
else {
saisiePoids.hidden=NO;
poidsDefaut.hidden=YES;
}
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)tempsAction:(id)sender {
temps = [[saisieTemps text] doubleValue];
}
- (IBAction)distanceAction:(id)sender {
distance = [[saisieDistance text] doubleValue];
}
- (IBAction)poidsAction:(id)sender {
poids = [[saisiePoids text] doubleValue];
}
- (IBAction)defautAction:(id)sender {
}
- (IBAction)saisieReturn :(id)sender{
[sender resignFirstResponder];
}
- (IBAction)calcul:(id)sender {
temps = [[saisieTemps text] doubleValue];
distance = [[saisieDistance text] doubleValue];
vitesse = distance*1000/temps;
if (vitesse <110)
factCal=1.06;
else if (vitesse < 120)
factCal=1.052;
else if (vitesse < 130)
factCal=1.046;
else if (vitesse < 140)
factCal=1.041;
else if (vitesse < 150)
factCal=1.037;
else if (vitesse < 160)
factCal=1.034;
else if (vitesse < 280)
factCal=1.030;
else if (vitesse < 300)
factCal=1.035;
else if (vitesse < 320)
factCal=1.039;
else if (vitesse < 330)
factCal=1.043;
else if (vitesse < 340)
factCal=1.046;
else if (vitesse < 350)
factCal=1.049;
else if (vitesse < 360)
factCal=1.052;
else if (vitesse < 370)
factCal=1.055;
else if (vitesse < 380)
factCal=1.058;
else if (vitesse < 390)
factCal=1.049;
else if (vitesse>=390)
factCal=1.065;
if (saisieDefaut.on)
calories= factCal*distance*poidsDonne;
else
calories= factCal*distance*poids;
resultat.text = [NSString stringWithFormat:@"%0.f", calories];
}
- (IBAction)paramSwitch:(id)sender {
if (saisieDefaut.on) {
saisiePoids.hidden=YES;
poidsDefaut.hidden=NO;
}
else {
saisiePoids.hidden=NO;
poidsDefaut.hidden=YES;
}
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"showFoodSegue"]){
FoodViewController *controller = (FoodViewController *)segue.destinationViewController;
controller.bouffon = calories;
这里出现错误, 'bouffon' 不是称为FoodViewController的目的。
}
if([segue.identifier isEqualToString:@"showDrinksSegue"]){
DrinksViewController *controllera = (DrinksViewController *)segue.destinationViewController;
controllera.caloriesDepensees = calories;
}
}
@end
这里FoodViewController.h:
#import <UIKit/UIKit.h>
#import "CalAppDelegate.h"
@interface FoodViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegate>
@property (weak, nonatomic) IBOutlet UICollectionView *foodCollectionView;
@property(nonatomic) double bouffon;
@end
这里FoodViewController.m:
#import "FoodViewController.h"
#import "FoodCell.h"
@interface FoodViewController()
{
NSArray *arrayOfImages;
NSArray *arrayOfDescriptions;
NSArray *arrayOfCalories;
double caloriesFoodDouble;
NSString *caloriesFoodObject;
double receptionDouble;
}
@end
@implementation FoodViewController
@synthesize bouffon;
@synthesize foodCollectionView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
//Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[[self foodCollectionView]setDataSource:self];
[[self foodCollectionView]setDelegate:self];
arrayOfImages = [[NSArray alloc]initWithObjects:@"beer2.jpg",@"biere1.png",nil];
arrayOfDescriptions =[[NSArray alloc]initWithObjects:@"bouffe",@"binouffe",nil];
arrayOfCalories =[[NSArray alloc]initWithObjects:@"1000",@"10000",nil];
}
- (NSInteger) collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{ return [arrayOfDescriptions count];
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *[email protected]"Cell1";
FoodCell *cell1 = ([collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier1 forIndexPath:indexPath]);
[[cell1 foodImage]setImage:[UIImage imageNamed:[arrayOfImages objectAtIndex:indexPath.item]]];
caloriesFoodObject=[arrayOfCalories objectAtIndex:indexPath.item];
caloriesFoodDouble = [caloriesFoodObject doubleValue];
caloriesFoodDouble=caloriesFoodDouble/bouffon;
[[cell1 foodLabel]setText:[NSString stringWithFormat:@"%.1f%@", caloriesFoodDouble,[arrayOfDescriptions objectAtIndex:indexPath.item]]];
return cell1;
}
- (NSInteger)numberOfSections:(UICollectionView *) collectionView
{return 1;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
您在哪一行中得到该错误? –