3

誰かが次の結果を説明してくれませんか?

//generate an array with 4 objects
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:
                         [NSNumber numberWithInt:1],
                         [NSNumber numberWithInt:2],
                         [NSNumber numberWithInt:3],
                         [NSNumber numberWithInt:4],
                         nil];
//release the array    
[array release];

//get a count of the number of elements in the array
int count = [array count]; <---  count returns 4

私のカウントはゼロであってはなりませんか? 「リリース」は配列からすべての要素を削除しませんか?

4

1 に答える 1

6

の値countは未定義です。これreleaseは、配列のプロパティに最後にアクセスした後が不正であるためです。基本的に、ダングリング ポインターにアクセスしています。

配列を無効にせずに消去したい場合は、removeAllObjectsメソッドを使用してください。

于 2012-07-19T14:02:59.957 に答える