2013-11-30 1 views
0

Когда я получаю приложение XMPP Presence в приложении, я добавляю его содержимое в NSMutableDictionary, чтобы отправить его по другому ViewController. Если я использую NSLog, чтобы увидеть содержимое этого словаря, я вижу все в порядке. Но когда я обращаюсь к этому NSMutableDictionary от другого ViewController Я не могу найти JID.Rest вещей хранится в порядке.Не удается получить XMPP JID из приложения NSMutableDictionary iOS.

Это то, что я делаю, сохраняя содержимое присутствия XMPP i i JID и Name.

- (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence 
{ 
    NSString *fromUser = [[presence from]user];  //name of user 
    NSString *fromUserJID = [NSString stringWithFormat:@"%@",[presence from]] ; 
    NSLog(@"presence from user JID :- %@", fromUserJID); // This shows the JID. 

     [_locationDictionary setObject:fromUser forKey:@"fromUser"]; 
     [_locationDictionary setObject:fromUserJID forKey:@"fromJID"]; 
     NSLog(@"locationary dictionary :- %@",_locationDictionary); // This shows name as well as JID. 

     // add to array 
    [_presenceArray addObject:_locationDictionary]; 

Теперь, когда я пытаюсь получить доступ к этому в другом ViewController я делаю это: -

NSString *str=view.annotation.title;  //This has the name of the user. 
    NSLog(@"annotation title :- %@", str);  
    for (NSDictionary *obj in appDelegate.presenceArray) 
    { 
     NSString *titleString = [obj objectForKey:@"fromUser"]; 

     if ([str isEqualToString:titleString])     //for the same username I need the JID 
     { 
      NSString *jidString = [obj objectForKey:@"fromJID"]; 
      [ dict setObject:jidString forKey:@"jid"];  //dict is NSMutableDictionary 

      NSLog(@"retrieved jid is :- %@", dict); // THIS IS NULL 
+0

jidString имеют какое-то значение или это ноль? И вы инициализировали свой дикт? –

+0

где вы вложили свой «дикт»? – iProgrammer

+0

dict инициализирован, в ViewDidLoad – icodes

ответ

2

[присутствие с] даст XMPPJid, который является тип NSObject.

XMPPJID *jid = [presence from]; 

Попытка получить Jid строку таким образом

NSString *fromUserJID = [[presence from] full];//Will give Jid have user, resource, domain 

//OR 

NSString *fromUserJID = [presence fromStr]; //Only give Jid of user. 

 Смежные вопросы

  • Нет связанных вопросов^_^