2013-08-01 106 views
1

我想創建一個具有類別的應用程序。每個類別都應擁有一系列具有屬性標題和分數的活動。創建數百個對象的最佳做法是什麼?

我必須創建所有這些活動的對象是這樣?:

Activity activity1* = [[Activity alloc] initWithTitle: @"Bla" andScore: 2]; 
Activity activity2* = [[Activity alloc] initWithTitle: @"Blub" andScore: 1]; 
Activity activity3* = [[Activity alloc] initWithTitle: @"Bla" andScore: 4]; 
... 

...或者說還有什麼其他選擇?我想這樣做會花費很多時間。

以下是詳細信息:

類對象(我需要那些20), 屬性:標題,活動陣列

活動對象(每個類別的對象,我想創建數百個活動對象), 屬性:標題,分數(從1到100)

如果我使用for循環,則必須在此後分配這些活動的分數。

我現在已經創建的宏其簡化編碼:

// for creating a category 
    #define K(string, array) [[Kategorie alloc] initWithTitle:NSLocalizedString((string), nil) andActivityArray: (array)] 
// for creating an activiy 
    #define A(string, score) [[Activity alloc] initWithTitle:NSLocalizedString((string), nil) andScore:(score)] 
+2

這就是的foreach的是。沒有辦法使用這些嗎?你能否給你的發展情況多一些背景? – Joze

+0

你需要兩個有序的數組,其中一個帶有標題,另一個帶有得分,並且使得i = 0(i <[onOfYourArray count]){code ...;我++;} –

回答

1

使用forwhile循環這一點。您可以將數據放入plist或文本文件中,並使用for循環枚舉文本文件中的行。

編輯:

也許這Link幫助您與plist中。

+0

你可以給一個plist例子的鏈接?也許這可能是解決方案。這樣我就可以遍歷plist數據,我可以很容易地更改,而代碼保持不變?除此之外,我可以集中數據,而不是更改我的對象的init方法。 – schirrmacher

+0

@maver查看我添加的鏈接。 – dasdom

0
NSMutableArray* arrayOfActivity=[[NSMutableArray alloc]init]; 
    for (int i=0; i<100; i++) { 
     Activity* activity1 = [[Activity alloc] init]; 
     [arrayOfActivity addObject:activity1]; 

    } 

    for (Activity* act in arrayOfActivity) { 
    // here you can implement all activity object one by one 
    } 

,或者你可以做到這一點的第一個這樣

NSMutableArray* arrayOfActivity=[[NSMutableArray alloc]init]; 
     for (int i=0; i<100; i++) { 
      Activity* activity = [[Activity alloc] [email protected]"Bla" andScore:i]; 
      [arrayOfActivity addObject:activity1]; 

     } 
+0

我該如何分配分數?它不應該是索引... – schirrmacher

+0

直接使用init的第二個分數,或者只是把setter和getter放在你的對象上 – Romano401

相關問題