Я изучаю основы управления и обработки событий при переходе с .NET на Objective-C.
Я создал проект Single View в XCode 4.2, используя ARC и раскадровку.На раскадровке ViewController имеет один UIImageView и UIButton.UIImageView присваивается имя imgLock в записи метки инспектора идентификации.Эта же техника используется для именования кнопки «btnToggle».
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
IBOutlet UIButton *btnToggle;
IBOutlet UIImageView *imgLock;
}
- (IBAction) toggleImage;
@property (readonly, strong) UIButton *btnToggle;
@property (readwrite, strong) UIImageView *imgLock;
@end
ViewController.m
#import "ViewController.h"
@implementation ViewController
@synthesize btnToggle, imgLock;
BOOL imgState;
- (void) toggleImage {
UIImage *img = [UIImage imageNamed: imgState ? @"Unlocked64" : @"Locked64"];
imgState = !imgState;
[imgLock setImage: img];
}
На раскадровке я нажимаю Ctrl-перетащил синюю линию от кнопки к изображению и выбрал toggleImage
в результирующем контекстном меню.
Когда я ставлю точку останова в toggleImage
и строю / запускаю проект, я вижу, что все какдолжно быть, за исключением того, что imgLock
равно 0x0.По моим дням в Windows, я ожидал, что элементы управления будут созданы, потому что они были «размещены в форме».
В журнале нет комментариев, кроме предупреждения при завершении процесса: предупреждение: ошибка в строке 2184 "/SourceCache/gdb/gdb-1708/src/gdb/macosx/macosx-nat-inferior.c" в функции "void macosx_kill_inferior_safe ()"