2012-08-12 86 views
-2

我有一個NSObject類中,我送一個NSDictionary對象太數組,類對象然後設置在NSDictionary所有條目他們天生的類型,可在NSObject類變量。創建NSObject的類

然後,我想通過這個NSObject類到它自己的NSMutableArray但是,當這種情況發生時,我的應用程序崩潰。

下面是調用NSObject類的代碼,然後嘗試將其設置爲NSMutableArray

NSArray *filteredArray = parsedDataArrayOfDictionaries; //dictionary entries are currently in nsstring format 
SearchResultList *searchResultList = [[SearchResultList alloc]init]; 
NSMutableArray *testArray = [[NSMutableArray alloc] init]; 

int myCount = 0; 

while (myCount <= [filteredArray count]) { 
    //call class and pass current NSDictionary in array[myCount] 
    [searchResultList assignSearchData:filteredArray[myCount]]; 
    searchResultList = (SearchResultList*)[testingDic objectForKey:@"myObject"]; 
    testArray[myCount] = searchResultList; //create array of nsobjectclassed, this is also where the app fails 
    NSLog(@"%@", testArray[myCount]); 
} 

希望這是使一些感覺,我收到升技迷失在while語句的中間......我知道我需要找回NSObject類,然後將其分配到一個數組..但我只是不知道如何做到這一點,任何幫助將不勝感激。

+0

您的代碼是沒有意義的。 seriesSearchResultList來自哪裏?爲什麼你創建一個SearchResultList對象並將其分配給searchResultList,然後覆蓋該指針(並泄漏該對象)? testingDic中應該是什麼? – 2012-08-12 23:58:09

+0

opps。 seriesSearchresultList是要被搜索結果列表..不知道他們發生了什麼。你的問題的第二部分的答案是:我已經得到了升技..我以爲我正在接收NSObject類searchResultList然後將該對象放入數組..這就是我認爲正在發生..但我想它不是..我只是升技失去..我試圖找到一個等同的例子,我在做什麼,但我找不到一個。 – HurkNburkS 2012-08-13 00:17:53

+0

我建議你先學習如何用Java編程。用Objective-C學習編程是一個非常糟糕的主意。 – 2012-08-13 02:21:48

回答

1

您已超出數組的大小filteredArray

while (myCount <= [filteredArray count]) { 

應該讀

while (myCount <[filteredArray count]) { 

爲陣列的數量比最後目標的指數一個更高的,如指數從0開始

老實說,我不確定,你正在努力實現什麼,但是你應該考慮使用fast enumeration而不是while語句

for (id obj in filteredArray) { 

或者更炫block-based enumeration

NSMutableArray *testArray = [[NSMutableArray alloc] init]; 
[filteredArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
    //... 
    [testArray addObject:obj]; 
}]; 
+0

好吧,感謝我現在讀快速枚舉的響應。我試圖實現的是採取NSMutableArray完整的NSDictionary它的條目都是字符串,並將它們傳遞給一個NSObject類,該類獲取字典中的每個條目並將NSString轉換爲它們的真正類型,然後爲每個NSDictionary對象MutableArray,然後將每個創建的NSObject類和值設置到它們自己的NSMutable數組中,然後可以將它們用於排序類中的不同條目。我希望這是有道理的。 – HurkNburkS 2012-08-13 00:49:28

+0

這實際上工作..但是我必須改變我從searchResultList調用返回自我的方法返回類型。那麼我也在'testArray addobject:obj]之後拿掉了'[count]';'這似乎讓事情進展得很順利,但是我仍然需要做一些測試。以確保沒有隨機出現的錯誤。謝謝你的幫助 :) – HurkNburkS 2012-08-13 01:29:48

-1

嘗試使用NSMutableArray addObject。 NSMutableArray沒有'C'風格的運算符。

+0

現代Objective-C和Xcode 4.4以上版本的LLVM4編譯器並非如此。支持對象文字和下標 – Abizern 2012-08-13 00:16:11

+0

hrmmm這是導致此問題**由於未捕獲的異常'NSRangeException'導致應用程序錯誤,原因:'*** - [__ NSArrayM objectAtIndex:]:索引0超出空數組的界限'** – HurkNburkS 2012-08-13 00:20:49

+0

@ Abizem - 謝謝你讓我知道。這將節省相當多的輸入。 – bbarnhart 2012-08-13 00:23:02