0
メモリ管理に問題があると思います。私は "EXC_BAD_ACCESS"エラーが2回目の割り当てを試みるときに(コードを実行して最初の割り当てを行いますが、2回目は消滅します)メモリの管理に問題がありますか? "EXC_BAD_ACCESS"エラーを受け取る
私はカスタムオブジェクト(日付と名前変数を含む)の配列をとる関数を持っています。私はこの配列を月ごとの配列にソートする必要があります(すべてのaprilはaprilListに、mayListにはmayなど)。
.hファイル
@class SceneData;
@interface DetailedSceneViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
{
UITableView *mainTableView;
SceneData *sceneData;
NSArray *monthsArray;
}
@end
.mファイル
#import "SceneData.h"
- (void) sortMonths {
Agri_ImaGIS_iPhoneAppDelegate *dataCenter = (Agri_ImaGIS_iPhoneAppDelegate *) [[UIApplication sharedApplication] delegate];
NSMutableArray *janList, *febList, *marList, *aprList, *mayList, *junList, *julList, *augList, *sepList, *octList, *novList, *decList = [[NSMutableArray alloc] init];
int count = [dataCenter.sortedDataList count];
NSLog(@"count: %d", count);
for (int i = 0; i < count; i++)
{
sceneData = [dataCenter.sortedDataList objectAtIndex:i];
if ([sceneData.name rangeOfString:@"Jan" ].location != NSNotFound)
{
NSLog(@"jan name: %@", sceneData.name);
[janList addObject: sceneData];
}
else if ([sceneData.name rangeOfString:@"Feb" ].location != NSNotFound)
{
NSLog(@"feb name: %@", sceneData.name);
[febList addObject:sceneData];
}
else if ([sceneData.name rangeOfString:@"Mar" ].location != NSNotFound)
{
NSLog(@"Mar name: %@", sceneData.name);
[marList addObject:sceneData];
}
else if ([sceneData.name rangeOfString:@"Apr" ].location != NSNotFound)
{
NSLog(@"Apr name: %@", sceneData.name);
[aprList addObject:sceneData];
}
else if ([sceneData.name rangeOfString:@"May" ].location != NSNotFound)
{
NSLog(@"May name: %@", sceneData.name);
[mayList addObject:sceneData];
}
else if ([sceneData.name rangeOfString:@"Jun" ].location != NSNotFound)
{
NSLog(@"Jun name: %@", sceneData.name);
[junList addObject:sceneData];
}
else if ([sceneData.name rangeOfString:@"Jul" ].location != NSNotFound)
{
NSLog(@"Jul name: %@", sceneData.name);
[julList addObject:sceneData];
}
else if ([sceneData.name rangeOfString:@"Aug" ].location != NSNotFound)
{
NSLog(@"Aug name: %@", sceneData.name);
[augList addObject:sceneData];
}
else if ([sceneData.name rangeOfString:@"Sep" ].location != NSNotFound)
{
NSLog(@"Sep name: %@", sceneData.name);
[sepList addObject:sceneData];
}
else if ([sceneData.name rangeOfString:@"Oct" ].location != NSNotFound)
{
NSLog(@"Oct name: %@", sceneData.name);
[octList addObject:sceneData];
}
else if ([sceneData.name rangeOfString:@"Nov" ].location != NSNotFound)
{
NSLog(@"Nov name: %@", sceneData.name);
[novList addObject:sceneData];
}
else if ([sceneData.name rangeOfString:@"Dec" ].location != NSNotFound)
{
NSLog(@"Dec name: %@", sceneData.name);
[decList addObject:sceneData];
}
}
}
私が間違ってsceneDataオブジェクトを扱うのですか?
ああ、ハハ!それは私が怠け者になるために得るものです。 xcodeは私に何かエラーや警告を与えていなかったので、私はinitがうまくいくように思った。あなたは正しいです、彼らはすべて漏れている、私はまだそれについて心配するほど遠くまで得ていなかった。助けてくれてありがとう! – Log139
@ Log139 get goからメモリ管理を実装することをお勧めします。後でコードを追加すると、お尻に誤りが発生しやすくなります。デザイン、セキュリティ、および手動によるメモリ管理は、最終的にあなたがタックするものではありません。 – PeyloW