2012-03-05 23 views
7

Yorum yaptığım modelimin uygulama dosyasında bir hata var. Bu sorunu çözmek için ne yapabilirim?Görünür arayüz hatası yok

Şimdiden teşekkürler.

#import "CalculatorBrain.h" 

@interface CalculatorBrain() 
@property (nonatomic, strong) NSMutableSet *operandStack; 
@end 

@implementation CalculatorBrain 

@synthesize operandStack = _operandStack; 

- (NSMutableArray *)operandStack 
{ 
    if (!_operandStack) { 
     _operandStack = [[NSMutableArray alloc] init]; 
    } 
    return _operandStack; 
} 

-(void)pushOperand:(double)operand 
{ 
    NSNumber *operandObject = [NSNumber numberWithDouble:operand]; 
    [self.operandStack addObject:operandObject]; 
} 

- (double)popOperand 
{ 
    NSNumber *operandObject = [self.operandStack lastObject]; // No visible interface for 'NSMutableSet' declares the selector 'lastObject' 
    if(operandObject) [self.operandStack removeLastObject]; // No visible interface for 'NSMutableSet' declares the selector 'removeLastObject' 
    return [operandObject doubleValue]; 
} 

- (double)performOperation:(NSString *)operation 
{ 
    double result = 0; 

    if([operation isEqualToString:@"+"]) { 
     result = [self popOperand] + [self popOperand]; 
    } else if ([@"*" isEqualToString:operation]) { 
     result = [self popOperand] * [self popOperand]; 
    } else if ([operation isEqualToString:@"-"]) { 
     double subtrahend = [self popOperand]; 
     result = [self popOperand] - subtrahend; 
    } else if ([operation isEqualToString:@"/"]) { 
     double divisor = [self popOperand]; 
     if (divisor)result = [self popOperand]/divisor; 
    } 

    [self pushOperand:result]; 

    return result; 

} 


@end 

cevap

4

Bir NSMutableSet olarak operandStack özelliğini ilan ettiler, ancak bir NSMutableArray olarak ilan etmesi gerekirdi: Bir NSSet "son nesne" almaya çalışıyoruz

@property (nonatomic, strong) NSMutableArray *operandStack; 
+0

Tamam, bu iyi çalıştı. Teşekkür ederim. – pdenlinger

1

- budur Setler sırasız olarak imkansız. NSMutableSet için lastObject yöntemi mevcut değil.

Bunun yerine bir NSMutableArray kullanmayı deneyebilirsiniz.