2013-07-23 23 views
0

什麼是組織下面的程序的理想方式:@interface,@implementation&program section在objective-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, const char * argv[]) 
    { 

     @autoreleasepool { 

      Fraction *frac1 = [[Fraction alloc] init]; 
      Fraction *frac2 = [[Fraction alloc] init]; 

      [frac1 setNumerator: 2]; 
      [frac1 setDenominator: 3]; 

      [frac1 print]; 

     } 
     return 0; 
    } 

我問這個noob問題,如X-代碼中有一項規定,分別有你的課,我從(編程客觀學習書-C)沒有指定將代碼塊放在哪裏。

回答

0

目標C

  • .H:頭文件,定義,聲明變量方法等
  • .M:實現文件,所有的方法執行發生在這裏
  • 的.xib:筆尖文件的視圖 管理部分的界面生成文件
  • 故事板:筆尖的高級形式,其中在 單一文件中的所有碎粒爲不同的場景
  • .h @interface definintion該文件和.m @implementation
  • main.m代碼邏輯的起點。

不同的文件格式,不需要necessarly的正常工作,所有這些單個文件可以做的工作

0

@inteface部分進入.h文件。 @implementation進入.m文件。

這可能是在書中解釋,雖然爲方便列​​表通常是一個整體。

0

接口聲明屬於頭文件(* .h)。

執行刪除屬於執行文件(* .m)。

您可以將接口聲明添加到您的實現文件,但這將是私有聲明。

0
// ---- @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, const char * argv[]) 
{ 

    @autoreleasepool { 

     Fraction *frac1 = [[Fraction alloc] init]; 
     Fraction *frac2 = [[Fraction alloc] init]; 

     [frac1 setNumerator: 2]; 
     [frac1 setDenominator: 3]; 

     [frac1 print]; 

    } 
    return 0; 
} 

進入的main.m

我在你的項目的建議,添加一個新的文件,該文件類型的Objective-C類。然後在您的頭文件中,複製頭文件代碼並在您的實現中複製實現文件代碼。然後在您的main.m文件,只需要導入您的代碼工作的頭文件...

+0

謝謝你,這是一個同樣可以接受,樂於助人的答案。 – vDog

相關問題