У меня есть UiViewController, который импортирует подклассный UIView с несколькими пользовательскими свойствами и методами.В настоящее время я могу импортировать и рисовать пользовательский UIView вместе с отправкой сообщений в методы, которые я определил в представлении, из методов, которые я определил в UIViewController.
Проблема, с которой я столкнулся, заключается в том, что в некоторых методах в моем UIViewControllerпользовательский объект UIView имеет значение null, в то время как в других методах он не равен null, и я могу отправлять на него сообщения без каких-либо проблем.
Вот как выглядит файл .h UIViewController:
#import "SequencerFrontView.h"
@interface MainViewController : UIViewController
{
SequencerFrontView *sequencerViewFront_01;
}
@property (nonatomic, strong) SequencerFrontView *sequencerViewFront_01;
- (void)createSequencerViewFront_01WithNumberOfSteps:(UInt8)steps;
- (void)recievePulse;
- (void)resetSequencer01;
Вот файл .m
#import "SequencerFrontView.h"
@synthesize sequencerViewFront_01;
- (void)createSequencerViewFront_01WithNumberOfSteps:(UInt8)steps
{
SequencerFrontView *sequencerView01 = [[SequencerFrontView alloc]initWithFrame:CGRectMake(500, 100, 225, 225)];
sequencerView01.sequencerSteps = steps;
//make sure view is transparent...this is a custom helper method..works fine
sequencerView01.backgroundColor = RGBCOLOR(0, 0, 0, 0);
//assign newly created view to instance variable
sequencerViewFront_01 = sequencerView01;
[self.view addSubview:sequencerViewFront_01];
}
- (void)recievePulse
{
//call to method works
[sequencerViewFront_01 clockLoop:1];
//NSLog returns object value
NSLog(@"sequencer object is: %@", sequencerViewFront_01);
}
- (void)resetSequencer01
{
//call to method doesn't work and doesn't return an error
[sequencerViewFront_01 resetSequencerStepAtStep:0];
//NSLog returns null for the object value
NSLog(@"sequencer object is: %@", sequencerViewFront_01);
}
Как видите, методы очень похожи.Но по какой-то причине метод resetSequencer01 не работает, поскольку объект sequencerViewFront_01 имеет значение null.Очевидно, что объект был выделен и получает сообщения от метода recivePulse, но я не могу понять, почему в одном методе он нулевой, а в другом нет.Я очистил проекты, выключил компьютер и ipad и продолжаю получать одно и то же.
Я подтвердил, что оба метода на самом деле достигаются с помощью NSLog.
Я могу вызвать это из метода recievePulse, и он работает
[sequencerViewFront_01 resetSequencerStepAtStep:0];
Но в методе resetSequencer01 он не работает.Я не понимаю, какая разница может быть.Может быть, мне не хватает способа очистить кеш?