Я пытаюсь скомпилировать и запустить простой объектный код c, но я делаю это в Windows. Я использую GNU Step, и мне очень сложно отлаживать его и понимать, что происходит runtime.I я разработчик .NET, и я всегда использую Debugger в Visual Studio, чтобы следить за потоком данных и stuf, но здесь ...... это очень раздражает. У меня нет Mac Book, поэтому я не тоже есть XCode.Проблема с отладкой кода Objective C
Может кто-нибудь сказать мне, в чем проблема в этом мире кода? Это довольно просто, и было бы здорово, если бы кто-то, у кого есть Mac, мог отладить его для меня и сказать мне, что не так.
Идея кода является то, что он считывает текстовый файл построчно, а затем каждые 3 строки кода это делает объект NSMutableArray и добавляет его к другому NSMutableArray.Here это:
The read_line функция:
int read_line(FILE *in, char *buffer, size_t max)
{
return fgets(buffer, max, in) == buffer;
}
содержание текстового файла:
Sophie Ellis-Bextor
71222
5.01
Inna Morales
61223
6.00
Kortez Domingues
41231
3.25
код в основной:
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
FILE *in;
if((in = fopen("C:...\\Input.txt", "rt")) != NULL)
{
char line[256];
NSMutableArray* resultArray = [[NSMutableArray alloc] init];
while(read_line(in, line, sizeof line))
{
NSString *currentLine = [[NSString alloc] initWithUTF8String:line];
[resultArray addObject:currentLine];
}
NSMutableArray*resultObjectsArray =[[NSMutableArray alloc] init];
NSMutableArray*tmpArray =[[NSMutableArray alloc] init];
for(int i=0 ; i <[resultArray count];i++)
{
if(i%4 == 3)
{
[resultObjectsArray addObject:tmpArray];
[tmpArray removeAllObjects];
NSLog(@"Here we add a new object");
}
else
{
[tmpArray addObject:[resultArray objectAtIndex:i]];
NSLog(@"%@",[resultArray objectAtIndex:i]);
}
}
fclose(in);
NSLog(@"First object in the result Array: %@",[[resultObjectsArray objectAtIndex:0] objectAtIndex:0]);
}
[pool drain];
Все, что я могу видеть, что на линии
NSLog(@"First object in the result Array: %@",[[resultObjectsArray objectAtIndex:0] objectAtIndex:0]);
Я получаю следующую ошибку: Uncaught Исключение NSRangeException, причина: Индекс 0 выходит за пределы диапазона 0 (в 'objectAtIndex:')