Почему ошибка NSException? - PullRequest
       13

Почему ошибка NSException?

0 голосов
/ 08 сентября 2011

Я поместил следующий код в ...;

NSDictionary *plainPart = [NSDictionary dictionaryWithObjectsAndKeys:@"text/plain",kSKPSMTPPartContentTypeKey,
@"Hello,\n You've just received a new message from the iDHSB iPhone App.\n Here it is: %@",field.text,     
kSKPSMTPPartMessageKey,@"8bit",kSKPSMTPPartContentTransferEncodingKey,nil];

... и получил сообщение об ошибке NSException:

*** WebKit discarded an uncaught exception in the webView:shouldInsertText:replacingDOMRange:givenAction: delegate:     
<NSInvalidArgumentException> +[NSDictionary dictionaryWithObjectsAndKeys:]: second object of each pair must be non-nil.  Or, did  
you forget to nil-terminate your parameter list?

Что это значит?Что мне нужно сделать, чтобы решить эту проблему?

Спасибо,

Джеймс

Ответы [ 4 ]

4 голосов
/ 08 сентября 2011

Вы пытаетесь отформатировать строку в инициализации своего словаря, и ожидается, что формат будет object, key, object, key, etc...Чтобы исправить это, попробуйте создать отформатированную строку в другой строке для ясности, а затем добавить ее как часть объектов и ключей, например

NSString *message = [NSString stringWithFormat:@"Hello,\n You've just received a new message from the iDHSB iPhone App.\n Here it is: %@",
                                                 field.text];
NSDictionary *plainPart = [NSDictionary dictionaryWithObjectsAndKeys:
                              @"text/plain", kSKPSMTPPartContentTypeKey,
                              message, kSKPSMTPPartMessageKey,
                              @"8bit", kSKPSMTPPartContentTransferEncodingKey,nil];
2 голосов
/ 08 сентября 2011

Может быть, вы имели в виду что-то вроде этого:

NSDictionary *plainPart = [NSDictionary dictionaryWithObjectsAndKeys:@"text/plain", kSKPSMTPPartContentTypeKey, [NSString stringWithFormat:@"Hello,\n You've just received a new message from the iDHSB iPhone App.\n Here it is: %@",field.text], kSKPSMTPPartMessageKey, @"8bit", kSKPSMTPPartContentTransferEncodingKey,nil];
1 голос
/ 08 сентября 2011

Попробуйте сначала создать строку:

NSString *partMessageKey = [NSString stringWithFormat:@"Hello,\n You've just received a new message from the iDHSB iPhone App.\n Here it is: %@",field.text];

затем поместите эту строку в словарь как объект.

1 голос
/ 08 сентября 2011

Вам не хватает аргумента.Я считаю, всего 8 аргументов, включая ноль.Это означает, что одна из ваших пар ключ-значение не завершена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...