Я пытаюсь использовать iOS StackPanel, найденную здесь в моем собственном проекте.
Я включил файлы Stackpanel. * В свой проект, и для проверки функциональности я скопировалдемонстрационный код, который включен в файл AppDelegate исходного проекта в мой проект в качестве действия для нажатия кнопки.Проблема в том, что я не могу установить значение self.stackPanel (или использовать [self setStackPanel :).В любом случае значение self.stackPanel остается nil .
Соответствующие разделы кода приведены ниже:
// From StackPanelAppDelegate.h (copied to MyViewController.h)
#import "StackPanel.h"
@interface MyNavViewController : UIViewController <UITextFieldDelegate>
{
StackPanel *stackPanel;
}
@property(strong, nonatomic) IBOutlet StackPanel *stackPanel;
@end
// From StackPanelAppDelegate.m (copied to MyViewController.m)
#import "StackPanel.h"
@implementation MyNavViewController
@synthesize stackPanel;
-(IBAction)myButtonPress:(id)sender
{
// Doesn't set correctly
self.stackPanel = [[StackPanel alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
...
// More code that adds things to the StackPanel
}
Я знаю, что методы alloc и initWithFrame: являютсяработает правильно, потому что я создал другой StackPanel * и мог установить его значение в результате initWithFrame :.Другими словами,
-(IBAction)myButtonPress:(id)sender
{
// This works
StackPanel* panel = [[StackPanel alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
...
// More code that adds things to the StackPanel
}
Я упускаю здесь что-то базовое, что не позволит мне установить значение для свойства stackPanel?
Единственная другая мысль, которую я имею, заключается в том, что оригиналкод не использует ARC, но мой проект использует, поэтому я удалил все операторы release
и retain
, чтобы компилятор был доволен.Я довольно новичок в ARC, но могли ли эти изменения изменить ситуацию?