1

Я использую Программирование в Objective-C 4th edition Stephen Kochan, чтобы научить себя Objective-C. Как новичок, я еще не понимаю, как отлаживать, и даже когда я копирую и вставляю код из книги в Xcode, я получаю ошибки. Это пример кода, который я получил из книги, которая не будет компилироваться:Как/где объявлять переменные экземпляра в интерфейсе, реализации, формате программы для написания кода цели-c?

#import <Foundation/Foundation.h> 
//---- @interface section ---- 
@interface Fraction: NSObject 
-(void) print; 
-(void) setNumerator: (int) n; 
-(void) setDenominator: (int) d; 
@end 
//---- @implementation section ---- 
@implementation Fraction { 
    int numerator; 
    int denominator; 
} 
-(void) print { 
    NSLog (@"%i/%i", numerator, denominator); 
} 
-(void) setNumerator: (int) n { 
    numerator = n; 
} 
-(void) setDenominator: (int) d { 
    denominator = d; 
} 
@end 
//---- program section ---- 
int main (int argc, char * argv[]) { 
    @autoreleasepool { 
     Fraction *myFraction; 
    // Create an instance of a Fraction 
     myFraction = [Fraction alloc]; myFraction = [myFraction init]; 
    // Set fraction to 1/3 
     [myFraction setNumerator: 1]; [myFraction setDenominator: 3]; 
    // Display the fraction using the print method 
     NSLog (@"The value of myFraction is:"); 
     [myFraction print]; 
    } 
    return 0; 
} 

Ошибки я получаю являются «несовместимыми экземпляр переменной спецификация» на линии 12. После того, что он просто продолжает говорить мне, что «числитель »и« знаменатель »не обнародованы. Последняя ошибка, которую я получаю для этой программы, заключается в том, что есть «ожидаемое выражение перед токеном @» в «@autoreleasepool». Что мне нужно изменить, чтобы скомпилировать его? Благодаря!!

+0

, где xcode версия u используется –

+0

Я скопировал ваш код в проект Xcode 4.6.2, и он скомпилирован и работает без каких-либо предупреждений. –

ответ

0

пожалуйста, проверьте эту ссылку н разработать программу в соответствии с этим автором Take a Look at Your First App

все вещи описывают шаг за шагом в этом учебнике

0

Я предполагаю, что вы скопировали весь код в один файл. //---- @interface section ---- переходит в файл Fraction .h, //---- @implementation section ---- в Fraction .m, а остальное содержимое файла main.m. Однако вы не должны изменять содержимое main.m.

+1

Не обязательно включать интерфейс/реализацию в отдельные файлы .h/.m. На самом деле код, заданный в вопросе, компилируется и запускается (на Xcode 4.6.2) без каких-либо предупреждений или проблем. –

+0

Хорошо, тогда я плохой. Спасибо за головы. – Levi

0

У меня только те же ошибки, что и GNUStep. Измените объявление @interface и установить что-то вроде

@interface Fraction: NSObject { 
    int numerator; 
    int denominator; 
} 

-(void) print; 
-(void) setNumerator: (int) n; 
-(void) setDenominator: (int) d; 
@end 

Это сделал трюк и скомпилированный успешно программу для меня.

 Смежные вопросы

  • Нет связанных вопросов^_^