As the name suggests I am trying to retrieve a vCard for a user using one of the next XMPPFrameworks methods: - (XMPPvCardTemp *)fetchvCardTempForJID:(XMPPJID *)jid; - (XMPPvCardTemp *)fetchvCardTempForJID:(XMPPJID *)jid useCache:(BOOL)useCache; My current implementation is: dispatch_queue_t queue = dispatch_queue_create("queue", DISPATCH_QUEUE_PRIORITY_DEFAULT); dispatch_async(queue, ^{ XMPPvCardCoreDataStorage* xmppvCardStorage = [XMPPvCardCoreDataStorage sharedInstance]; XMPPvCardTempModule* m = [[XMPPvCardTempModule alloc] initWithvCardStorage:xmppvCardStorage]; [m fetchvCardTempForJID: