#objective-c #xcode
#objective-c #xcode
Вопрос:
Я получаю эту проблему, которую я прокомментировал в своем основном файле:
#import <Foundation/Foundation.h>
#import "Person.h"
int main (int argc, const char * argv[])
{
// Create an instance of Person
Person *person = [[Person alloc]init];
// Give the instance variables interesting values
[person setWeightInKilos:96];
[person setHeightInMeters:1.8];
// Call the body mass index
float bmi = [person bodyMassIndex];
NSLog(@"person has a bmi of %f", bmi);
}
return 0; // Expected identifier or '('
} // Expected external declaration
Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject {
float heightInMeters;
int weightInKilos;
}
// You will be able to set those instance variables using these methods
- (void)setHeightInMeters:(float)h;
- (void)setWeightInKilos:(int)w;
// This method calculates the body weight index
- (float)bodyMassIndex;
@end
Person.m
#import "Person.h"
@implementation Person
- (void)setHeightInMeters:(float)h{
heightInMeters = h;
}
- (void)setWeightInKilos:(int)w {
weightInKilos = w;
}
- (float)bodyMassIndex {
return weightInKilos / (heightInMeters * heightInMeters);
}
@end
Ответ №1:
У вас есть ошибка }
в вашей программе перед return 0;
. Ошибка скорее вводит в заблуждение. Возможно, вы захотите переключиться на использование LLVM вместо GCC (это также ускорит компиляцию, а не только исправит ошибки).
Комментарии:
1. Спасибо; это сделало свое дело. Я использую компилятор Apple LLVM 3.0, поэтому я не уверен, почему он вернул ошибку.
2. @pdenlinger: Вы? Ха, с этой ошибкой я ожидал, что это будет GCC. Похоже, LLVM, безусловно, мог бы здесь справиться лучше. Не могли бы вы отправить отчет об ошибке ?
3. Я не зарегистрированный разработчик Apple, как мне подать файл? Могу ли я отправить ссылку на эту страницу на адрес электронной почты Apple, сообщающий об ошибках?
4. @pdenlinger: Все, что вам нужно, это учетная запись Apple Developer Connection, которая бесплатна (стоят только программы для разработчиков iOS и Mac, вы можете бесплатно зарегистрироваться здесь ). С учетной записью ADC вы можете сообщать об ошибках по адресу bugreport.apple.com . На странице отчета об ошибке должно быть объяснено, как подать отчет. Если вы можете взять свой код и поместить его в образец проекта Xcode, который при сборке продемонстрирует проблему, тогда вы можете прикрепить весь проект к своему отчету.
Ответ №2:
У вас есть дополнительная закрывающая фигурная скобка в нижней части вашей основной функции. Прямо над строкой «return 0;».
Ответ №3:
Что закрывающая скобка делает перед вашим возвратом в вашей основной функции? Я думаю, вы закрыли 1 для многих.