2017-08-12 61 views
0

我的数组长度是32和在28的歌曲,但我在Thousends中获得数字而不满足如果.....([AlbumsAnsSongs sharedManager] .movi​​eNames这是一个数组)。 任何帮助,将不胜感激。在数组中获取错误的数字索引的对象

int number=0; 
    number=(int)[[AlbumsAnsSongs sharedManager].movieNames indexOfObject:song]; 
    if (number< [AlbumsAnsSongs sharedManager].movieNamesPath.count) 
{ 
    [self metadata:[[AlbumsAnsSongs sharedManager].movieNamesPath objectAtIndex:number]]; 
} 
+0

'movieNames'究竟含有什么?什么是'歌'? –

+0

电影名称包含歌曲名称列表歌曲包含歌曲名称 – Abhiram

+0

因此'movieNames'是一个字符串数组,而'song'是一个字符串? –

回答

0

在文档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"); 
} 

你肯定列表真的包含你正在寻找的歌曲?

+0

我想得到歌曲名称数组的索引歌曲路径两个是相同的引用一个有路径,另一个有名字,所以我有名字,所以我需要得到该名称的路径 – Abhiram

+0

好吧。我编辑了我的答案。什么被记录? –

+0

不要只是发布代码。解释什么是错的,并解释你的答案如何解决问题。 – rmaddy