Lud*_*uda 3 objective-c nsmutablearray
我有一个NSMutableArray我初始化的viewDidLoad:
self.titlesTagArreys = [@[@"Dollar", @"Euro", @"Pound",@"Dollar longString", @"Euro longStringlongString", @"Pound",@"Dollar", @"Euro", @"PoundlongStringlongString"]mutableCopy];
Run Code Online (Sandbox Code Playgroud)
在.h:
@property(nonatomic, copy) NSMutableArray* titlesTagArreys;
Run Code Online (Sandbox Code Playgroud)
当我尝试删除一个项目时,应用程序崩溃:
-(void)removeButtonWasPressed:(NSString*)tagTitle{
NSLog(@"tagTitle - %@",tagTitle);
NSLog(@"self.titlesTagArreys - %@",self.titlesTagArreys);
[self.titlesTagArreys removeObject:tagTitle];
}
Run Code Online (Sandbox Code Playgroud)
这是日志:
2013-08-06 16:15:03.989 EpicTv[6378:907] tagTitle - Dollar
2013-08-06 16:15:03.991 EpicTv[6378:907] self.titlesTagArreys - (
Dollar,
Euro,
Pound,
"Dollar longString",
"Euro longStringlongString",
Pound,
Dollar,
Euro,
PoundlongStringlongString
)
[__NSArrayI removeObject:]: unrecognized selector sent to instance 0x1c53bbd0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI removeObject:]: unrecognized selector sent to instance 0x1c53bbd0'
*** First throw call stack:
(0x327162a3 0x3a5c197f 0x32719e07 0x32718531 0x3266ff68 0x20ad55 0x20c9a5 0x20bf5d 0x346090c5 0x34609077 0x34609055 0x3460890b 0x34608e01 0x345315f1 0x3451e801 0x3451e11b 0x362295a3 0x362291d3 0x326eb173 0x326eb117 0x326e9f99 0x3265cebd 0x3265cd49 0x362282eb 0x34572301 0xafb89 0xa4d68)
libc++abi.dylib: terminate called throwing an exception
Run Code Online (Sandbox Code Playgroud)
小智 6
似乎titlesTagArrays列表不是NSMutableArray因为removeObject无法调用.也许你NSArray早先在代码中通过了titlesTagArreys.
尝试init使用
self.titlesTagArreys = [NSMutableArray arrayWithArray:@[@"...",@"...",...]];
Run Code Online (Sandbox Code Playgroud)
@property(非原子,复制)为你创建一个不可变的NSMutableArray副本.尝试@property(非原子,保留)而不是复制
我还认为,titlesTagArreys由于某些代码更改,您不是可变数组
尝试添加:NSLog(@"%@", NSStringFromClass(self.titlesTagArreys.class));检查您使用的是哪个类
-(void)removeButtonWasPressed:(NSString*)tagTitle{
NSLog(@"%@", NSStringFromClass(self.titlesTagArreys.class));
[self.titlesTagArreys removeObject:tagTitle];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2320 次 |
| 最近记录: |