2012-03-19 42 views
2

這可能超出Objective C可以執行的範圍。在一系列操作中處理相關的NSMutable數組

它涉及對命名變量(例如15個不同的操作)進行一些操作,然後對類似命名的變量執行這15個操作,等等,讓我們說10個變量。

假設我有一組10個NSMutableArray;例如,

NSMutableArray *a =[[NSMutableArray alloc]init]; 
... 
NSMutableArray *j =[[NSMutableArray alloc]init]; 

我對它們做了15個操作以獲得15個不同的變量(也包括數組或更精確的NSMutableArray)。比方說,我做的第一件事就是讓計算的是一個直通j中的產品:

for (int i=0;i<[a count]; i++) 
    aProduct = /* some operation upon NSMutableArray a*/...; 
... 
for (int i=0;i<[j count]; i++) 
    jProduct = /* some operation upon NSMutableArray j*/...; 

比方說,我做了15件事是讓計算的是一通j中選擇:

for (int i=0;i<[a count]; i++) 
    aSelection = /* some operation upon NSMutableArray a*/...; 
... 
for (int i=0;i<[j count]; i++) 
    jSelection = /* some operation upon NSMutableArray j*/...; 

現在,我使用交換機/案例編碼,其中涉及很多思考,初始化,甚至陷入我在一個「情況」的聲明出現了拼寫錯誤(留出休息),當我複製了代碼,錯誤傳播了下來。因此,有沒有辦法避免15組「開關/大小寫」代碼,而是「動態地」(如果Xcode和iOS中存在這樣的事情)並避免創建10次15個變量?

或者我創建並聲明瞭150個變量,但是在某些數組中可以這樣做,也許通過使用變量的尋址(& a到& j)?

這變得非常複雜,非常快,有時候10個數組中有一些有很多元素,而其他數組是空的(例如,a可能有20個元素,j有空元素)

PS :((Postscript at 6:56 pm NYC time 19Mar2012)我實際上希望我可以使用一些變量名,然後前綴或後綴字母a到j;例如:

ProductA = [[....; SelectorA = ....;

和具有子程序只取從A信至J經由枚舉翻譯,爲0到9

我不拒絕由Peter Cetinski早先提出的解決方案;我只是還沒有試圖實現它。

回答

1

如果需要維護每個陣列計算的值,然後嘗試使用數組

NSMutableArray *arrOfArrays = [[NSMutableArray alloc] init]; 
[arrOfArrays addObject:a]; 
..... 
[arrOfArrays addObject:j]; 

for (NSMutableArray *arr in arrOfArrays) { 
    for (int i=0;i<[arr count]; i++) { 
     aProduct = /* some operation upon NSMutableArray arr*/...; 
     ..... 
     aSelection = /* some operation upon NSMutableArray arr*/...; 

     //do something with your computed values 
    } 
} 
+0

的陣列,我不認爲這是問題的答案。
首先,我必須聲明10次15個數組,對吧?
其次,在2「for循環」的內部,我看到你有一個產品和一個選擇,在那裏對b,c,...,j不起作用。
換句話說,我只想要「產品」,當它使用「a」或「j」時,它會在「產品」和「選擇」之前添加「a」到「j」
當然,除非,通過放置一個產品而不是產品等來輸入錯誤。 – 2012-03-20 14:26:29

+0

不,你只需要一個包含10個數組的數組。是的,我只是將你的僞代碼用於產品。產品將被設置爲你的每個「字母」數據集。 – 2012-03-20 15:35:53