Программирование просмотра iPhone

Я пытаюсь иметь 2 представления в своем приложении, используя 2 кнопки на главном экране. Для каждой из этих кнопок я создал новый класс и добавил следующий код в свой контроллер представления:

ViewController.h:

#import <UIKit/UIKit.h>
@interface Gallerie2ViewController : UIViewController {
}
- (IBAction)switch2class1:(id)sender; // 1st button
- (IBAction)switch2class2:(id)sender; // 2nd one
@end

ViewController.m:

#import "ViewController.h"
#import "class1.h"
#import "class2.h"

@implementation ViewController

- (IBAction)switch2class1:(id)sender
{
    Class1 *Class1view = [[Class1 alloc] initWithNibName:nil bundle:nil];
    [self presentModalViewController:Class1view animated:YES];
}

- (IBAction)switch2class2:(id)sender
{
    Class2 *Class2View = [[Class2 alloc] initWithNibName:nil bundle:nil];
    [self presentModalViewController:Class2View animated:YES];
}

Class1.h/.m имеет то же содержимое, что и Class2.h/.m , но при запуске моего приложения 1-я кнопка работает нормально (открывает представление Class1), а 2-я кнопка приводит к сбою приложения!

Что я делаю неправильно?


person user251356    schedule 15.01.2010    source источник
comment
что говорит лог? в xcode перейдите в меню «Выполнить» > «Консоль», затем нажмите «Очистить консоль», а затем создайте и запустите и вставьте сюда код после его сбоя.   -  person Sam Jarman    schedule 15.01.2010
comment
Незначительная придирка, не связанная с сбоем: похоже, что Class1 и Class2 являются подклассами UIViewController, поэтому было бы меньше путаницы, если бы он читал UIViewController* controller = ... вместо Class2 *Class2View = ...   -  person Costique    schedule 15.01.2010


Ответы (1)


Хорошо, я проверил с помощью консоли (спасибо Сэму Джарману) и нашел причину этой проблемы: один из моих классов (Class2) назывался List. Таким образом, он скомпилирован с List.h и List.m, но List.h уже определен (вероятно, часть SDK). При компиляции не было никаких ошибок/предупреждений о конфликте, но что ж... я переименовал list.h в cat.h, и теперь он работает нормально!

Спасибо !

person user251356    schedule 15.01.2010
comment
Рад, что Вы так быстро решили проблему. Идите вперед и отметьте это как принятый ответ. Кроме того, что вы получите дополнительную репутацию, это поможет сообществу и сайту :) - person Anurag; 15.01.2010