Objective-C의 새로운 기능으로 참조 카운트가 혼란 스럽습니다 .--(. Xcode 5.0.2의 ARC 모드에서 NSArray init 객체를 만들면 객체의 dealloc 메톤이 호출되지 않고, ? 왜 여기 내 테스트 코드는 어떻게 수동으로 배열에서 개체를 제거하지만이있는 NSArray, 야 하는가?.NSArray의 객체가 ARC 모드에서 dealloc methon을 호출하지 않는 이유는 무엇입니까?
//------LCDRound.h file-------------
@interface LCDRound : NSObject
- (void)paint;
@end
//------LCDRound.m------------------
@implementation LCDRound
- (void)paint
{
NSLog(@"I am Round");
}
- (void)dealloc
{
NSLog(@"Round dealloc");
}
@end
//-------main.m---------------------
#import <Foundation/Foundation.h>
#import "LCDRound.h"
int main(int argc, const char * argv[])
{
LCDRound* round1 = [[LCDRound alloc] init];
LCDRound* round2 = [[LCDRound alloc] init];
NSArray* objects = [NSArray arrayWithObjects:round1, round2, nil];
for (LCDRound* shape in objects) {
[shape paint];
}
return 0;
}
예제에서 dealloc을 호출하는 위치는 어디입니까? – DrummerB