내 -viewDidLoad 메서드에서 초기화하는 여러 ivar NSArrays가 있습니다. 하나는 문자열을 포함하고, 하나는 IBOutlets를 포함합니다. 그러나 초기화 할 때 배열의 모든 개체가 범위를 벗어 났고 메모리 주소는 0x0입니다 (Xcode 디버거에 따라 다름). 그러나, 같은 개체가있는 로컬 NSArray있을 때 잘 작동합니다. ivar NSString 또는 NSDictionary 초기화 모두 잘 작동합니다.코코아 터치 NSArray 초기화가 제대로 작동하지 않습니다.
코드 :
//.h file
#import <UIKit/UIKit.h>
@interface myViewController : UIViewController
{
NSArray *myArray;
}
@end
//.m file
#import "myViewController.h"
@implementation myViewController
- (void)viewDidLoad
{
[super viewDidLoad];
myArray = [[NSArray alloc] initWithObjects:@"aString", @"another string", nil];
NSLog(@"myArray equals: %@.", myArray);
}
@end
내가 배열을 사용하려고, 난 EXC_BAD_ACCESS 런타임 오류가 발생합니다. 이 Xcode 버그, 또는 NSArray에 대해 뭔가 놓치고 있습니까? 업데이트 : ARC를 사용하고 있습니다. ARC를 끄고 깨끗한 빌드를 수행 한 후에 더 이상이 문제가 발생하지 않습니다. 이것은 ARC의 버그입니까?
문제가 무엇인지 모르겠지만 Xcode (4.0.2)의 안정 버전으로 전환했는데 전혀 문제가 없었습니다. 도움을 주신 모든 분들께 감사드립니다!
현재 NSLog를 사용하려고합니다. 코드는'NSLog (@ "% @", myArray);' – futurevilla216
최소한의 예제를 게시 할 수 있습니까? – bbum
좋아요, 원래 게시물을 업데이트하겠습니다. – futurevilla216