在数组中获取错误的对象索引数字



我的数组长度是 32,歌曲是 28。 但我在 Thousend 中得到了数字 并且不满足如果.....([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;

所以也许你的歌曲在数组中找不到,你的if块也没有被执行。检查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");
}

您确定您的列表确实包含您要查找的歌曲吗?

最新更新