Это меня беспокоит;
NSURL *url =(NSURL *) imageURL;
Похоже, вы, возможно, приводите строку в NSURL? Как определяется imageURL?
Если так, не делайте этого, делайте это правильно с чем-то вроде:
NSURL *url = [NSURL URLWithString:imageURL];
Конечно, если imageURL не является NSString, вам нужно начать с него.
Но не могли бы вы привести пример того, как на самом деле выглядит ваш URL, это может быть проблемой.