Почему наследование должно начинаться с NSObject, а затем использовать наследование в другом классе?Почему наследование должно быть «подклассом» NSObject?
Удивите, почему у меня есть подкласс «FatherClass» из UIViewController. Итак, я хочу создать наследование FatherClass (ChildClass: FatherClass).
Я не могу этого сделать, я получаю журнал ошибок. Все примеры, которые я искал здесь, и Google начинаются с NSObject как отец.
Так что мой вопрос должен быть таким? Или я где-то ошибаюсь.
Вот журнал регистрации ошибок
#0 0x33d6c6f8 in CFStringGetCharacters()
CoreFoundation`CFStringGetCharacters:
0x33d6c6f8: push.w {r8, r10}
Благодаря
EDIT здесь с кодом
FatherClass.h
@class ChildClass;
@interface FatherClass : UIViewController <UITabBarControllerDelegate, UINavigationBarDelegate, UIPopoverControllerDelegate, MKMapViewDelegate, MKAnnotation>
{
//Some variables
}
@property (nonatomic, strong) ChildClass *sidebar_table_controller;
-(void) show_modal: (id) sender; // Thats the Method i want to call
@end
FatherClass.m
#import "FatherClass.h"
#import "ChildClass.h"
@interface FatherClass()
@end
@implementation FatherClass
@synthesize sidebar_table_controller;
// All inits here... DidiLoad, DidUnload, etc..
-(void) show_modal: (id) sender // Thats the Method!!!
{
// All initiate ChildClass an then.. present modal
[self presentModalViewController:self.sidebar_table_controller animated:YES];
NSLog(@"Clicked ?...%@", sender);
}
@end
Теперь ребенок
ChildClass.h
@interface ChildClass : FatherClass <UINavigationControllerDelegate, UITableViewDataSource, UITableViewDelegate>
@end
ChildClass.m
#import "ChildClass.h"
@interface ChildClass()
@end
@implementation ChildClass
// All inits here... DidiLoad, DidUnload, etc..
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Here i want to call Father Method
[FatherClass show_modal:indexPath];
}
@end
Когда я изменить ChildClass: UIViewController к ChildClass: FatherClass мой крах приложения.
Нет ничего плохого в наследовании от UIViewController. Покажите свой код, как вы создаете «FatherClass» и «ChildClass». Получаете ли вы какие-либо ошибки или предупреждения от компилятора при создании этих классов? –
Странно то, что это единственная ошибка при использовании BreakPoint и без BreakPoint. Но я отредактирую свой вопрос и введите код, который вы видите. –
Если нет ошибок компилятора или предупреждений, связанных с кодом, который вы используете для создания ваших подклассов UIViewController, тогда может потребоваться обратная трассировка стека.Одной одной инструкции x86 внутри CFStringGetCharacters() действительно недостаточно контекста, чтобы дать представление о том, что происходит. –