Почему ошибка nsexception?
-
28-10-2019 - |
Вопрос
Я поместил следующий код в ...;
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?
Что это значит? Что мне нужно сделать, чтобы решить эту проблему?
Спасибо,
Джеймс
Решение
Вы пытаетесь отформатировать строку в инициализации своего словаря, и она ожидает, что формат будет 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];
Другие советы
Может ты имел в виду что -то вроде этого:
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];
Вам не хватает аргумента. Я считаю 8 общих аргументов, включая NIL. Это означает, что одна из ваших паров значений ключей не завершена.
Попробуйте первый создать строку:
NSString *partMessageKey = [NSString stringWithFormat:@"Hello,\n You've just received a new message from the iDHSB iPhone App.\n Here it is: %@",field.text];
Затем поместите эту строку в словарь как объект.
Не связан с StackOverflow