Я хочу сохранить URL-адрес против UILabel, чтобы при касании пользователем ярлыка он попадал на этот URL-адрес в UIWebView.Использование объектов object-c с NSDictionary
Я объявил NSDictionary так:
NSMutableArray *linksArray = [[NSMutableArray alloc] init];
[linksArray addObject: [NSValue valueWithNonretainedObject: newsItem1ReadMoreLabel]];
[linksArray addObject: [NSValue valueWithNonretainedObject: newsItem2ReadMoreLabel]];
[linksArray addObject: [NSValue valueWithNonretainedObject: newsItem3ReadMoreLabel]];
[linksArray addObject: [NSValue valueWithNonretainedObject: newsItem4ReadMoreLabel]];
[linksArray addObject: [NSValue valueWithNonretainedObject: newsItem5ReadMoreLabel]];
//NSString *ageLink = @"http://www.theage.com.au";
NSArray *defaultLinks = [NSArray arrayWithObjects: @"1", @"2", @"3", @"4", @"5", nil];
self.urlToLinkDictionary = [[NSMutableDictionary alloc] init];
self.urlToLinkDictionary = [NSDictionary dictionaryWithObjects:defaultLinks forKeys:linksArray];
Учитывая я использовал NSValue
в качестве ключа, как я могу получить/установить URL, связанный с этим ключом, учитывая, что у меня есть только ссылки на UILabels?
это то, что у меня есть, но он не работает:
for(NSValue *key in [self.urlToLinkDictionary allKeys])
{
if ([key nonretainedObjectValue] == linkedLabel)
{
[self.urlToLinkDictionary setValue:[newsItem link] forKey: key];
}
}
, но я получаю сообщение об ошибке: «objc_exception_throw» решена
Не уверен, что это является причиной ошибки, но urlToLinkDictionary устанавливается с помощью 'Словарь NSDictionaryWithObjects', и в этом случае setValue в цикле должен завершиться ошибкой. Используйте 'NSMutableDictionary dictionaryWithObjects'. Кроме того, строка alloc + init над словаремWithObjects не нужна и приводит к утечке. – DyingCactus