2016-07-10 37 views
0

我很新iOS/Swift開發。我正在嘗試使用AWS Cognito來實現用戶註冊/登錄。用默認配置初始化SDK後我做的:如何在Swift中初始化AWSCognitoIdentityUserAttributeType?

let pool = AWSCognitoIdentityUserPool(forKey: "UserPool") 

[隨後]

pool.signUp(...) 

註冊的用戶。

我需要傳遞數組AWSCognitoIdentityUserAttributeType到signUp方法,但我無法初始化此類型的對象。

var first_name = AWSCognitoIdentityUserAttributeType(
           dictionary: ["given_name": "rob"]) 

結果如下錯誤:

2016-07-10 08:48:43.025 Demo1[4199:111322] - 
     [AWSCognitoIdentityUserAttributeType initWithDictionary:]: 
     unrecognized selector sent to instance 0x7fee54a6ede0 
+0

我終於想出瞭如何在Swift中初始化AWSCognitoIdentityUserAttributeType! let first_name = AWSCognitoIdentityUserAttributeType() first_name.name =「given_name」 first_name.value =「rob」 – ranji

回答

0

我相信你應該做這樣,創建AWSCognitoIdentityUserAttributeType的數組,然後創建一個一束類型的對象,分配的名字'然後是'價值',正如我下面所做的那樣。然後你就可以使用該對象 '屬性' 在你pool.signup

var attributes = [AWSCognitoIdentityUserAttributeType]() 
    let name = AWSCognitoIdentityUserAttributeType() 
    let email = AWSCognitoIdentityUserAttributeType() 
    let gender = AWSCognitoIdentityUserAttributeType() 
    let birthdate = AWSCognitoIdentityUserAttributeType() 
    let username = AWSCognitoIdentityUserAttributeType() 

    let myFormatter = DateFormatter() 
    myFormatter.dateFormat = "dd/MM/yyyy" 

    name?.name = "name" 
    email?.name = "email" 
    gender?.name = "gender" //implementar genero ainda 
    birthdate?.name = "birthdate" 
    sobrenome?.name = "family_name" 
    username?.name = "preferred_username" 


    let birthdateNsDate:Date = birthdateField.date as Date 
    birthdate?.value = myFormatter.string(from: birthdateNsDate) 
    name?.value = nameTextField.text! 
    email?.value = emailTextField.text! 


    attributes.append(name!) 
    attributes.append(email!) 
    attributes.append(gender!) 
    attributes.append(birthdate!) 
    attributes.append(sobrenome!) 
    attributes.append(username!) 
0

單個實例:

例如,

AWSCognitoIdentityUserAttributeType(name: "key", value: number) 
AWSCognitoIdentityUserAttributeType(name: "key", value: "string") 

數組作爲函數調用的參數:

awsUserPool.currentUser()?.update([ 
    AWSCognitoIdentityUserAttributeType(name: "key0", value: value0), 
    AWSCognitoIdentityUserAttributeType(name: "key1", value: value1) 
])