-viewDidLoadメソッドで初期化するいくつかのivar NSArrayがあります。 1つは文字列を含み、1つはIBOutletsを含む。しかし、私が初期化すると、配列内のオブジェクトはすべてスコープ外になり、メモリアドレスは0x0(Xcodeデバッガによる)です。しかし、私は同じオブジェクトを持つローカルNSArrayを持って、それは正常に動作します。 ivarの初期化NSStringまたはNSDictionaryはうまくいきます。Cocoa Touch 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