在数组中获取错误的数字索引的对象
问题描述:
我的数组长度是32和在28的歌曲,但我在Thousends中获得数字而不满足如果.....([AlbumsAnsSongs sharedManager] .movieNames这是一个数组)。 任何帮助,将不胜感激。在数组中获取错误的数字索引的对象
int number=0;
number=(int)[[AlbumsAnsSongs sharedManager].movieNames indexOfObject:song];
if (number< [AlbumsAnsSongs sharedManager].movieNamesPath.count)
{
[self metadata:[[AlbumsAnsSongs sharedManager].movieNamesPath objectAtIndex:number]];
}
答
在文档NSArray
你找到关于indexOfObject:
方法的返回类型的下列信息:
如果没有一个数组中的对象是等于anObject,返回NSNotFound。
所以,你所谈论的大量可以是宣布这样的NSNotFound
值:
static const NSInteger NSNotFound = NSIntegerMax;
因此,也许你的歌是不是在数组中,如果不执行你的块。检查NSNotFound
,看看有什么是真的错了:
NSInteger number = [[AlbumsAnsSongs sharedManager].movieNames indexOfObject:song];
if (number != NSNotFound) {
if (number < [[AlbumsAnsSongs sharedManager].movieNamesPath.count {
[self metadata:[[AlbumsAnsSongs sharedManager].movieNamesPath objectAtIndex:number]];
} else {
NSLog(@"could not find path for song");
}
} else {
NSLog(@"could not find song");
}
你肯定列表真的包含你正在寻找的歌曲?
'movieNames'究竟含有什么?什么是'歌'? –
电影名称包含歌曲名称列表歌曲包含歌曲名称 – Abhiram
因此'movieNames'是一个字符串数组,而'song'是一个字符串? –