Я проверил Google и не нашел ничего, что могло бы помочь.Я пишу класс стека в Objective-C, стек основан на NSMutableArray, однако я не могу добавить к нему какие-либо объекты, он не выдает никаких ошибок в консоли, и нет предупреждений / ошибок компиляции.Вот мой код для стекового объекта.
#import "Stack.h"
@implementation Stack
@synthesize stack;
- (id)init {
self.stack = [[NSMutableArray alloc] init];
return self;
}
- (void)push:(id)object { [self.stack addObject:object]; }
- (int)size { return [self.stack count]; }
- (id)pop {
id obj = [[[self.stack lastObject] retain] autorelease];
[self.stack removeLastObject];
return obj;
}
- (id)peek { return [self.stack lastObject]; }
@end
Заголовок:
#import <Cocoa/Cocoa.h>
@interface Stack : NSObject {
NSMutableArray *stack;
}
- (void)push:(id)object;
- (int)size;
- (id)pop;
- (id)peek;
@property (nonatomic, retain) NSMutableArray *stack;
@end
Для остальной части кода, если я вызываю [test_stack size], он возвращает ноль, неважносколько раз я нажимаю на объект, и если я вызываю pop или peek, он просто возвращает (null).
#import "TRIAL_Stack_Ctrl.h"
@implementation TRIAL_Stack_Ctrl
@synthesize test;
- (IBAction)push:(id)sender {
[test_stack push:[input stringValue]];
}
- (IBAction)pop:(id)sender {
[label setStringValue:[NSString stringWithFormat:@"%@", [test_stack pop]]];
}
- (IBAction)peek:(id)sender {
[label setStringValue:[NSString stringWithFormat:@"%@", [test_stack peek]]];
}
- (IBAction)size:(id)sender {
[label setStringValue:[NSString stringWithFormat:@"%d", [test_stack size]]];
}
@end
Это заставляет меня поверить, что это не нажатие на объект, я что-то делаюне так?