2016-11-02 2 views
-3

Я изучаю быстро, и я создаю пользовательский интерфейс для приложения, я хотел знать, что не так с моим кодом, потому что он продолжает говорить, что у меня есть ошибки.Отображение оповещения в Swift

let userEmail = userEmailTextField.text; 
let userPassword = userPasswordTextField.text; 
let userRepeatPassword = repeatPasswordTextField.text; 

// check for empty fields 
if((userEmail.isEmpty || userPassword.isEmpty || userRepeatPassword.isEmpty) 
{ 

    //Display alert message 
    displayMyAlertMessage("Alert fields are required"); 
    return; 
} 

//check if passwords match 
if(userPassword != userRepeatPassword) 
// error expected expression in list of expression 
{ 

    //Display alert message 
    displayMyAlertMessage("Alert fields are required"); 
    return; 
} 

ожидаемый «("после того, как если условие

func displayMyAlertMessage(userMessage: String) 
{ 
    var myAlert = UIAlertController(
     title: "Alert", 
     message: userMessage, 
     PrefferedStyle:UIAlertController.Alert); 
} 

Тип ошибки" UIAlertController'has не член 'Предупреждение'

Просто нужна помощь, выясняя ошибки для кода

+0

Почему линия «ошибка ожидается выражение в списке выражения» существует? Если это комментарий, он должен начинаться с символов двойной косой черты. Для другой ошибки вы ошибочно написали «предпочитаемый». Проверьте правильность написания декларации метода, чтобы убедиться, что вы правильно ее вызываете. – Stephen

ответ

2

Эта строка кода твоего:

var myAlert = UIAlertController(title:"Alert", message: 
     userMessage, PrefferedStyle:UIAlertController.Alert); 

должно быть:

var myAlert = UIAlertController(title: "Alert", message: userMessage, preferredStyle: .Alert); 

оповещения является случай перечислений UIAlertControllerStyle, поэтому он должен быть UIAlertControllerStyle.Alert вместо UIAlertController.Alert. Кроме того, поскольку компилятор знает, какой тип перечисления следует использовать для параметра preferredStyle, поэтому вы можете использовать .Alert вместо этого.

Есть более '(', чем ')' в вашем первом, если условие:

if((userEmail.isEmpty || userPassword.isEmpty || 
     userRepeatPassword.isEmpty) { 

, таким образом, вызывая первую ошибку. Вы должны изменить его на:

if(userEmail.isEmpty || userPassword.isEmpty || 
      userRepeatPassword.isEmpty) { 

И следовать Свифта кодирования конвенции, вы должны, наконец, изменить его на:

if userEmail.isEmpty || userPassword.isEmpty || 
       userRepeatPassword.isEmpty { 
+1

Это Свифт. Зачем использовать скобки вообще в инструкции 'if'? – rmaddy

+0

Это просто вопрос вкуса. Я просто дал ему представление о том, откуда исходит ошибка. Я не пытался изменить его стиль кодирования. –

+0

Я согласен с @rmaddy –

0
let userEmail = userEmailTextField.text 
let userPassword = userPasswordTextField.text 
let userRepeatPassword = repeatPasswordTextField.text 

// check for empty fields 
if userEmail.isEmpty || userPassword.isEmpty || 
    userRepeatPassword.isEmpty { 

    //Display alert message 

    displayMyAlertMessage("Alert fields are required") 

    return; 

} 

//check if passwords match 
if userPassword != userRepeatPassword 

    //error expected expression in list of expression 
{ 

    //Display alert message 
    displayMyAlertMessage("Alert fields are required") 
    return 

} 

Вам не нужно() после того, как если заявления в стрижа. Swift может рассматривать их как кортежи. Вы можете просто сделать

if condition { 


} 

Также вам не нужна точка с запятой после каждого утверждения быстро. Вы можете удалить ;

+0

На самом деле это не объясняет, что было не так с кодом OP. И это не устраняет проблемы в функции displayMyAlertMessage. – rmaddy

0

@ Ответ на Dat Hoang правильный, но ваше предупреждение на самом деле не появится, пока вы его не представите. Добавьте эту строку в конце вашего метода displayMyAlertMessage

present(self, animated: true, completion: nil) 

Я рекомендую вам проверить это Swift Coding Styling Guide, а