2010-07-18 78 views
0

我無法從nsmutable數組中刪除對象。這裏是。從NSMutableArray iPhone SDK中刪除多個對象時出現問題

NSURL *url = [NSURL URLWithString:@"http://www.lockerz.com/dailies"]]; 
NSData *datadata = [NSData dataWithContentsOfURL:url]; 
NSString *removeForArray = [[NSString alloc] initWithData:datadata encoding:NSASCIIStringEncoding]; 
NSArray *theArray = [removeForArray componentsSeparatedByString:@" "]; 
NSMutableArray *deArray = [[NSMutableArray array] initWithArray:theArray]; 
[deArray removeObjectsInRange:NSMakeRange(0, 40)]; 
NSLog(@"%@", deArray); 
+0

那麼,問題是什麼? – 2010-07-18 18:56:57

+0

它崩潰對我說,以下內容: ***由於未捕獲的異常'NSInvalidArgumentException',原因:'*** - [NSMutableArray initWithCapacity:]:方法只針對抽象類定義應用程序。定義 - [__ NSArrayM initWithCapacity:]!' ***一次調用堆棧: – 2010-07-18 19:00:11

+1

Michael Amici:你似乎已經用'array'(它返回一個初始化的空數組對象)混淆了'alloc'(它返回一個空的對象,然後你需要初始化)不擁有)。請參閱Georg Fritzsche的解答。 – 2010-07-18 20:38:56

回答

3

+[NSMutableArray array]已經返回一個初始化數組。不要對此使用初始化方法,它們將用於新實例。

在這種情況下可以任一

  • alloc/init實例
  • 使用-mutableCopy
  • 使用合適的便捷構造

三個以下行是等效的:

NSMutableArray *a = [[theArray mutableCopy] autorelease]; 
NSMutableArray *b = [NSMutableArray arrayWithArray:theArray]; 
NSMutableArray *c = [[[NSMutableArray alloc] initWithArray:theArray] autorelease];