Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

Рассмотрение кода

Если Вы испытываете затруднения, заставляя Ваше приложение работать правильно, сравнить Ваш код со списками, показанными в конце этой главы и рассмотреть Ваше действие и соединения розетки.

Код и предупреждения компилятора

Ваш код должен скомпилировать без любых предупреждений. При получении предупреждений рекомендуется обработать их как, вероятно, чтобы быть ошибками. Поскольку Objective C является выразительным языком, иногда максимум, который Вы получаете от компилятора, является предупреждением.

Листинги кода

Этот раздел обеспечивает списки для интерфейса и файлов реализации AppDelegate и Track классы. Эти списки не показывают комментарии и другие реализации метода, которые предоставлены шаблоном Xcode.

Интерфейсный файл: AppDelegate.h

#import <Cocoa/Cocoa.h>
 
@class Track;
 
@interface AppDelegate : NSObject <NSApplicationDelegate>
 
@property (assign) IBOutlet NSWindow *window;
@property (weak) IBOutlet NSTextField *textField;
@property (weak) IBOutlet NSSlider *slider;
@property (strong) Track *track;
 
- (IBAction)mute:(id)sender;
- (IBAction)takeFloatValueForVolumeFrom:(id)sender;
- (void)updateUserInterface;
 
@end

Файл реализации: AppDelegate.m

#import "AppDelegate.h"
#import "Track.h"
 
@implementation AppDelegate
 
@synthesize textField = _textField;
@synthesize slider = _slider;
 
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    Track *aTrack = [[Track alloc] init];
    [self setTrack:aTrack];
    [self updateUserInterface];
}
 
- (IBAction)mute:(id)sender {
    [self.track setVolume:0.0];
    [self updateUserInterface];
}
 
- (IBAction)takeFloatValueForVolumeFrom:(id)sender {
    float newValue = [sender floatValue];
    [self.track setVolume:newValue];
    [self updateUserInterface];
}
 
- (void)updateUserInterface {
    float volume = [self.track volume];
    [self.textField setFloatValue:volume];
    [self.slider setFloatValue:volume];
}
 
@end

Интерфейсный файл: Track.h

#import <Foundation/Foundation.h>
 
@interface Track : NSObject
@property (assign) float volume;
 
@end

Файл реализации: Track.m

#import "Track.h"
 
@implementation Track
 
@end

Назад переходить прямо в