Эй, я новичок в Objective-C, а также в программировании с Cocoa вообще... в любом случае мой код выглядит так:
int main(int argc, char *argv[])
{
printf("how many address would you like to input?\n");
int numAddresses;
scanf("%i", &numAddresses);
char *inputString;
NSMutableArray * arrayOfBooks = [NSMutableArray array];
for (int i = 0; i < numAddresses; ++i) {
book * f = [[book alloc] init];
printf("Please input the name of contact %i\n", i+1);
scanf("%s",inputString);
[f setName: inputString];
printf("Please input the address of contact %i\n", i+1);
scanf("%s", inputString);
[f setAddress: inputString];
printf("Please input the birthday of contact %i\n", i+1);
scanf("%s", inputString);
[f setBirthday: inputString];
printf("Please input the phone number of contact %i\n", i+1);
scanf("%s", inputString);
[f setPhoneNumber: inputString];
[f print];
[arrayOfBooks addObject:f];
[f release];
}
for(int i = 0; i < numAddresses; i++){
[arrayOfBooks[i] print];
}
return 0;
}
Я просто делаю адресную книгу. Когда я ввожу имя, он выдает ошибку «EXC_BAD_ACCESS». Почему?
#import "book.h"
@implementation book
-(void) setName: (char*) nameInput{
name = nameInput;
}
-(void) setAddress: (char*) addressInput{
address = addressInput;
}
-(void) setPhoneNumber: (char*) phoneNumberInput{
phoneNumber = phoneNumberInput;
}
-(void) setBirthday: (char*) birthdayInput{
birthday = birthdayInput;
}
-(void) print{
printf("Name: %s\n", name);
printf("Address: %s\n", address);
printf("Phone Number: %s\n", phoneNumber);
printf("Birthday: %s\n", birthday);
}
@end
РЕДАКТИРОВАТЬ: я больше не получаю ошибку... но теперь у меня новая проблема. Он предлагает мне ввести имя, а затем мгновенно предлагает мне ввести адрес, прежде чем я смогу что-либо сделать. Почему это могло происходить?
scanf
.scanf
возвращает количество элементов, которые были успешно проанализированы, поэтому в вашем коде каждый вызовscanf
должен возвращать 1. Если он не возвращает 1, это означает, что произошла ошибка. - person dreamlax   schedule 11.11.2010