2011-01-15 10 views
0

私は、私はボタンをクリックすると、これらを削除して、レコードの新しいセットを表示するオプションをしたい画面 に行として従業員レコードを示していますEXC_BAD_ACCESS問題

次のように私のコードの構造/組織は次のとおりです。私のコントローラで .H

NSMutableArray *employeeScrollViewArray; 
IBOutlet UIScrollView *employeeScrollViewItems; 
ここ
  • 私はUIScrollViewの持っている - employeeScrollViewItems - UIに表示される行が移入され

    私はまた、配列内のこれらの行を格納 - 示すようにemployeeScrollViewArray

初期化とMyController.mファイル内のオブジェクトのリリースは、次のとおりです。 方法で

- (void)viewDidLoad { 
employeeScrollViewArray=[[NSMutableArray alloc]init]; 

を、私はこの可変配列を解放していますメソッド内で:

ビューが読み込まれるときこの配列には、ユーザーのオブジェクトが設定されます。定義済みクラス方法におけるS: EmployeeDetail.mファイル

EmployeeDetail *empDetail=[[EmployeeDetail alloc]init]; 
empDetail.delegate=self; 
[[NSBundle mainBundle] loadNibNamed:@"EmployeeDetail" owner:empDetail options:nil]; 
[self.employeeScrollViewItems addSubview:empDetail.view]; 
[employeeScrollViewArray addObject:empDetail]; 

「H」ファイル敵EmployeeDetail.hの詳細は次のとおり

@interface EmployeeDetail : UIViewController 


UIView *view; 

これは、データが取り込まれ、「ビュー」と(例外の原因となっている)

私は今クリーンアップしたい画面に表示される/これらのオブジェクトは は、だから私はこのようなものを試してみました削除

これは私がそれらを削除しようとした場合、私は、これらのオブジェクト を削除することができています唯一の方法であるが、別々に私が項目を削除し、コードが経過した後も

しかし、このエラーを取得する - それはまだ、このエラーがスローされます このコードを削除すると、問題は解決しますが、これらのオブジェクトを削除することはできません。

助けてください!

答えて

0

私はエラーがどこから来ているかわからないが、私はいくつかの一般的なアドバイスがあります:

あなたは配列に追加した後、オブジェクトを解放する必要があり

を。

[employeeScrollViewArray addObject:empDetail]; 
[empDetail release]; 

アレイのエントリはアレイ自体によって保持されます。クリーンアップメソッド(dealloc)では、配列を解放するだけです:[employeeScrollViewArray release]。これにより、含まれているすべてのオブジェクトも解放されます。

ほとんどの場合、ビュー階層をクリーンアップする必要はありません。しかし、あなたがemployeeScrollViewItemsのすべてのサブビューを削除したい場合は、私はこれを行うだろう:

for (UIView* subview in [employeeScrollViewItems subviews]) { 
    [subview removeFromSuperview]; 
} 
+0

感謝のPHIXを - 私はそう、私は配列に追加した後にオブジェクトを解放していますことを述べることを忘れてしまった - 奇妙なことは、私です「EmployeeDetail」オブジェクト内の「ビュー」が実際の「EmployeeDetail」オブジェクトと干渉していると思わないでください。 – user576724

+0

OK NSZombieを使用して実行しました。これは私が取得するものです。「Objective-Cメッセージが割り当てられていないオブジェクト(ゾンビ)アドレス:0x74aa4b0で、発信者は「 - [UIView _createLayerWithFrame:]」と表示されます。 – user576724