1
"addTarget:自己アクション:@セレクタ" :: NSArrayは動作しますが、ポインタはcallBackルーチンで失敗しますか?しかし、viewDidLoadからルーチンを呼び出すことは、NSArrayとポインタの両方で機能しますか? "addTarget:self action:@selector" callbackとは何が違うのですか?ここ"addTarget:自己アクション:@セレクタ" :: NSArrayは動作しますが、ポインタは失敗しますか?
コードスニペットです:探しのための
おかげで...
ファイル.h
NSArray *nsarrA;
NSString **p_nssB;
file.m
- (void)viewDidLoad {
nsarrA = [[NSArray alloc] initWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",nil];
p_nssB = (NSString**)malloc(10*sizeof(NSString*));
for (int i=0; i<10; i++) {
p_nssB[i]=[NSString stringWithFormat:@"%d", i];
}
[self viewMenu];
}
- (void) viewMenu {
UIButton *uibtnMenu = [uibtnMenu addTarget:self action:@selector(actionMenu:) forControlEvents:UIControlEventTouchUpInside];
[uiviewMenu addSubview:uibtnMenu];
NSLog(@"nsarrA: %@ %@ %@", [nsarrA objectAtIndex:0], [nsarrA objectAtIndex:1], [nsarrA objectAtIndex:2]);//<--works
NSLog(@"p_nssB: %@ %@ %@", p_nssB[0], p_nssB[1], p_nssB[2]);//<--Works
}
- (void) actionMenu: (UIButton *) uibtnMenu{
NSLog(@"nsarrA: %@ %@ %@", [nsarrA objectAtIndex:0], [nsarrA objectAtIndex:1], [nsarrA objectAtIndex:2]);//<--works
NSLog(@"p_nssB: %@ %@ %@", p_nssB[0], p_nssB[1], p_nssB[2]);//<--fails(drops out of App)
}
以上、 NSArrayを使用します。 C配列にオブジェクトを格納する場合は、オブジェクトのメモリが画像の外観を管理する方法や、ポインタが絡んでいるか、漏れてしまうかについて、非常に確かなアイデアが必要です。 – Chuck
トーマスありがとう、私は私の問題を解決するためにあなたのソリューションを拡張することができました。 –
@Chuck、どういう意味ですか?ポインタが漏れているのか、ぶら下がっていますか? –