と呼ばれるメソッドがありgetProjects
ます。私の方法では、jsonからのデータを解析します。name
プロジェクトのとid
をインスタンス変数に保存します。projectsArray
これはNSMutableArray
。です。
問題は、ボタン(IBAction
)が呼び出されwriteFile
、クリック時に配列をログに記録しようとすると、アプリがクラッシュすることです。エラーメッセージはESC_BAD_ACCESS
です。しかし、なぜ?ARCを使用しています。
`Method getProjects
- (void)getProjects {
int count = 0;
self.projectsArray = [NSMutableArray arrayWithCapacity:10];
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@projects.json", urlPath]]];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
NSArray *projects = [parser objectWithString:json_string error:nil];
for (NSDictionary *project in projects) {
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:2];
[dict setObject:[project objectForKey:@"name"] forKey:@"name"];
[dict setObject:[project objectForKey:@"id"] forKey:@"id"];
[self.projectsArray insertObject:dict atIndex:count];
[self.selectProject addItemWithTitle:[project objectForKey:@"name"]];
count++;
}
}
そして、私はでメソッドを呼び出しますapplicationDidFinishLaunching
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[self getProjects];
NSLog(@"%@", self.projectsArray);
}
applicationDidFinishLaunchingのログは、配列を返します。