Цель C Объективная нуль в некоторых методах и не нулевая в других - PullRequest
0 голосов
/ 19 марта 2012

У меня есть 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 он не работает.Я не понимаю, какая разница может быть.Может быть, мне не хватает способа очистить кеш?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...