なぜ継承はNSObjectで開始し、次に別のクラスで継承を使用する必要がありますか?NSObjectを継承する必要があるのはなぜですか?
なぜ私はUIViewControllerからサブクラス "FatherClass"を持っているのだろうか。 したがって、継承のFatherClass(ChildClass:FatherClass)を作成します。
私はこれを行うことはできません、私はエラーログを取得します。 ここで検索したすべての例GoogleはNSObjectを父親として始めます。
私の質問はそうでなければなりませんか?あるいは私はどこかで間違っています。ここで
はエラー・ログには、コードをHERE
#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
012です今#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変更する場合:ChildClassへのUIViewControllerを:FatherClass私のアプリがクラッシュします。
UIViewControllerから継承することは何も問題ありません。 "FatherClass"と "ChildClass"の作成方法についてのコードを表示します。これらのクラスを作成するときにコンパイラからエラーや警告が出ますか? –
奇妙なことは、これがBreakPointを使用しているときとBreakPointを使用しないときの唯一のエラーだということです。 しかし、質問を編集し、あなたが見るコードを入力します。 –
UIViewControllerのサブクラスを作成するために使用しているコードにコンパイルエラーまたは警告が関連付けられていない場合、スタックバックトレースが必要な場合があります。CFStringGetCharacters()内の単一のx86命令は実際に何が起こっているかを知るには十分なコンテキストではありません。 –