gpt4 book ai didi

ios - 来自 plist 字典 KEYS、iOS 的 UITableView

转载 作者:行者123 更新时间:2023-11-28 18:45:38 26 4
gpt4 key购买 nike

我试图在越狱的 iPhone 上的 iTunes 目录中获取自定义铃声的名称。我可以成功列出自定义铃声,但它们重新显示为 HWYH1.m4r,这是 iTunes 重命名文件的方式,但我知道有一种方法可以破译歌曲的实际名称。

    NSMutableDictionary *custDict = [[NSMutableDictionary alloc] initWithContentsOfFile:@"/iPhoneOS/private/var/mobile/Media/iTunes_Control/iTunes/Ringtones.plist"];
NSMutableDictionary *dictionary = [custDict objectForKey:@"Ringtones"];
NSMutableArray *customRingtone = [[dictionary objectForKey:@"Name"] objectAtIndex:indexPath.row];
NSLog(@"name: %@",[customRingtone objectAtIndex:indexPath.row]);
cell.textLabel.text = [customRingtone objectAtIndex:indexPath.row];

dictionary 正在返回:

"YBRZ.m4r" =     
{
GUID = 17A52A505A42D076;
Name = "Wild West";
"Total Time" = 5037;
};

cell.textLabel.text 正在返回:name: (null)

最佳答案

NSMutableArray *customRingtone = [[dictionary objectForKey:@"Name"] objectAtIndex:indexPath.row];

那条线是完全错误的。您的 dictionary 反对它,实际上,它是一个 NSDictionary,其键值等于“YBRZ.m4r”之类的值。您正在请求名为“名称”的键的值,该键不存在。然后,对于返回的对象,您向它发送一个方法,就好像它是一个 NSArray,但事实并非如此。然后你希望它返回一个 NSArray。再一次,我不认为它确实如此。它应该更像这样:

NSArray *keys = [dictionary allKeys];
id key = [keys objectAtIndex:indexPath.row];
NSDictionary *customRingtone = [dictionary objectForKey:key];
NSString *name = [customRingtone objectForKey:@"Name"];
cell.textLabel.text = name;

另请注意,我没有使用 NSMutableDictionary。如果您不需要字典是可变的,您可能应该有一个可变字典。

关于ios - 来自 plist 字典 KEYS、iOS 的 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1972163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com