如何在特定索引处添加对象,还从NSMutableArray中删除另一个对象?

时间:2014-05-13 12:23:44

标签: ios nsmutablearray

你好朋友,我是ios开发的新手。 我想在这里为我的代码添加指定索引的对象。

arrNotificationTime = [NSMutableArray arrayWithCapacity:arrNotificationView.count];

for (int i=0; i<arrNotificationView.count; i++)
{
    [arrNotificationTime addObject:[NSNull null]];
}
NSLog(@"Time count == %d",[arrNotificationTime count]);
[arrNotificationTime replaceObjectAtIndex:btnNotificationTime.tag withObject:btnNotificationTime.titleLabel.text];

它完美地工作,但我也想从这个数组中删除另一个或相同的对象,或者打印这个数组对于我的代码不起作用。

NSLog(@"arrNotificationTime == %@",arrNotificationTime);
[arrNotificationTime removeObjectAtIndex:[btn tag]];

当我对数组进行nslog时,它将使应用程序崩溃。 错误报告是。

2014-05-13 17:52:09.973 TOPDesign[1057:11303] arrNotificationTime count = 0
2014-05-13 17:52:09.974 TOPDesign[1057:11303] arrNotificationTime == (
)
2014-05-13 17:52:09.975 TOPDesign[1057:11303] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM removeObjectAtIndex:]: index 1 beyond bounds for empty array'
*** First throw call stack:
(0x15ae012 0x12bbe7e 0x15501c4 0xc6ec 0x12cf705 0x2032c0 0x203258 0x2c4021 0x2c457f 0x2c36e8 0x4c71d3 0x1576afe 0x1576a3d 0x15547c2 0x1553f44 0x1553e1b 0x260f7e3 0x260f668 0x1ffffc 0x2592 0x24c5)
libc++abi.dylib: terminate called throwing an exception
(lldb) 

3 个答案:

答案 0 :(得分:1)

您无法删除空数组中的任何对象。所以它崩溃了。

你必须像这样使用

 [arrNotificationTime count] is total count of your array

假设您有10个项目

你btn标签应该在0到9之间。如果你访问第11项,那么它将崩溃。避免它。你必须像这样使用

if([arrNotificationTime count]>[btn tag]){


    [arrNotificationTime removeObjectAtIndex:[btn tag]];


}

答案 1 :(得分:1)

这是为了在数组中的特定索引中添加对象。

[YourArray insertObject:@"" atIndex:0];

这是为了删除特定对象的对象。

[YourArray removeObjectAtIndex:5];

希望此代码对您有用。

答案 2 :(得分:0)

在你的arrNotificationTime数组中没有对象,你删除了对象。所以应用程序崩溃了。