2013-10-17 46 views
-1

我如何檢查是否有項目存在,如果它確實取代了它的NSMutableArray我只是不能想出辦法來的一切我至今是:檢查的項目存在,那麼取代它的NSMutableArray

int i = [arrayOne indexOfObject:@"object to replace"]; 
    NSLog(@"%@", i); 
    [arrayOne replaceObjectAtIndex:i withObject:@"replace"]; 

但我不斷收到錯誤:S能幫助我嗎?

我的數組是:

@[ "13L6-A67-1", "13NAPUSD-A1", "13NASUWO-X1", "13NASUWO-X1", "13ASECON-D1", "13ASECON-D1", "13ASECON-D1", "13ASECON-D1", "13ASMATH-C1", "13ASMATH-C1", "13ASMATH-C1", "13ASMATH-C1", "13ASPHYS-B1", "13ASPHYS-B1", "13ASPHYS-B1", "13ASPHYS-B1", "13B3ITCE-F1", "13B3ITCE-F1", "13B3ITCE-F1", "13B3ITCE-F1" ] 
+0

給出錯誤的詳細信息。顯示數組包含的示例以及您嘗試替換特定項目的示例。 – Wain

+0

@Wain這是我的數組 「13L6-A67-1」, 「13NAPUSD-A1」, 「13NASUWO-X1」, 「13NASUWO-X1」, 「13ASECON-D1」, 「13ASECON-D1」, 「13ASECON-D1」, 「13ASECON-D1」, 「13ASMATH-C1」, 「13ASMATH-C1」, 「13ASMATH-C1」, 「13ASMATH-C1」, 「13ASPHYS-B1」, 「13ASPHYS-B1」, 「13ASPHYS-B1」, 「13ASPHYS-B1」, 「13B3ITCE-F1」, 「13B3ITCE-F1」, 「13B3ITCE-F1」, 「13B3ITCE-F1」 Howeve這個數組在每次應用程序加載時都會發生變化,因爲它檢索用戶數據並將其從json解析到數組中 –

+0

@JordanNewton - 請注意數組中存在重複條目,因此indexOfObject將在此類情況下返回第一個對象的索引。您可以考慮使用NSSet而不是陣列。但是,你遇到什麼錯誤? – Ashok

回答

1

,如果對象是不存在的數組NSNotFound值返回,所以你需要檢查它:同樣,如果你想打印

if (i != NSNotFound) 
    [arrayOne replaceObjectAtIndex:i withObject:@"replace"]; 

注整數值,你應該使用%d格式說明符,%@用於objective-c對象

0

看來你是這個平臺的新手。因此,這裏是工作的代碼示例 -

NSMutableArray *arrayOne = [@[@"13L6-A67-1",@"13NAPUSD-A1",@"13NASUWO-X1",@"13NASUWO-X1",@"13ASECON-D1",@"13ASECON-D1",@"13ASECON-D1",@"13ASECON-D1",@"13ASMATH-C1",@"13ASMATH-C1",@"13ASMATH-C1",@"13ASMATH-C1",@"13ASPHYS-B1",@"13ASPHYS-B1",@"13ASPHYS-B1",@"13ASPHYS-B1",@"13B3ITCE-F1",@"13B3ITCE-F1",@"13B3ITCE-F1",@"13B3ITCE-F1" ] mutableCopy]; 

NSUInteger index = [arrayOne indexOfObject:@"13ASECON-D1"]; 

if (index != NSNotFound) { 
    [arrayOne replaceObjectAtIndex:index withObject:@"DIFFERENT_VALUE"]; 

    NSLog(@"arrayOne after replaceObjectAtIndex = %@", arrayOne); 
} 

一般準則 -

  1. 注意編譯器警告當你建立。
  2. 把斷點和步驟通過你的代碼不起作用。