我正在尝试遍历名为songs
的数组,其中包含来自iPod库的用户歌曲列表,但要获得标题,我需要这样做(获得NSString
歌曲标题):
[[songs objectAtIndex:i] valueForProperty:MPMediaItemPropertyTitle]
我正在尝试创建tableView的索引,但我仍然坚持这一点:
for (NSString *title = MPMediaItemPropertyTitle in songs)
{
rowTitle= [title substringToIndex:1]; //modifying the statement to its first alphabet
if ([rowTitle isEqualToString:sectionTitle]) //checking if modified statement is same as section title
{
[rowContainer addObject:title]; //adding the row contents of a particular section in array
}
}
我收到错误的地方
- [MPConcreteMediaItem substringToIndex:]:无法识别的选择器发送到实例
在这一行:rowTitle= [title substringToIndex:1];
。
如何循环播放歌曲以获取MPMediaItemPropertyTitle然后获取歌曲标题的第一个字母?我认为我正在做的是声明NSString'title
并循环播放歌曲中的所有标题。显然我不是:S。
我正在关注此tutorial。请问有人帮帮我吗?感谢。
答案 0 :(得分:1)
此...
for (NSString *title = MPMediaItemPropertyTitle in songs)
应该......
for (MPMediaItem *song in songs) {
NSString *title = [song valueForProperty:MPMediaItemPropertyTitle];
}
您的原始代码将title
引用指向MPConcreteMediaItem
项。
答案 1 :(得分:1)
试试这个。
for (NSString *title in songs)
{
rowTitle= [title substringToIndex:1]; //modifying the statement to its first alphabet
if ([rowTitle isEqualToString:sectionTitle]) //checking if modified statement is same as section title
{
[rowContainer addObject:title]; //adding the row contents of a particular section in array
}
}
答案 2 :(得分:1)
for..in
循环遍历songs
数组中的对象。它不会自动发送valueForProperty
消息,因此您必须自己执行此操作:
for (MPMediaItem *song in songs)
{
NSString *title = [song valueForProperty:MPMediaItemPropertyTitle];
rowTitle= [title substringToIndex:1]; //modifying the statement to its first alphabet
if ([rowTitle isEqualToString:sectionTitle]) //checking if modified statement is same as section title
{
[rowContainer addObject:title]; //adding the row contents of a particular section in array
}
}