Как добавить любой тип данных в строку в Swift - PullRequest
0 голосов
/ 07 мая 2018

Мне нужно вызвать get api, для этого мне нужно добавить параметры в вызов api. но моя проблема в том, что я получаю эти параметры в ответ на предыдущее представление API. Теперь у меня есть этот словарь в ответ

Employee Detail Info {
"business_unit_3" = "South Europe";
"currency_type" = TRY;
"date_of_joining" = "01-Nov-10";
desig = "KEY ACCOUNT MANAGER";
email = "try-employee-16@aw.com";
"emp_salary_status" = 1;
"final_salary" = "241455.28";
"first_approver" = "TRY-Employee-10@aw.com";
"fourth_approver" = "TRY-Employee-5@aw.com";
grade = 3;
id = 134;
"increment_applied_on_salary" = "227788.00";
"last_action_by" = "TRY-Employee-10@aw.com";
"last_manager_name" = "TRY-Employee-10";
level = 3A;
"manager_discretions" = "6.00";
"manager_emailid" = "TRY-Employee-10@aw.com";
"market_salary" = "0.00";
name = "TRY-Employee-16";
"performance_cycle_name" = AW;
"performance_rating" = "Exceeds Results";
"req_status" = 1;
"rule_id" = 1;
"rule_name" = "AW Sal";
"rule_staus" = 6;
"second_approver" = "TRY-Employee-3@aw.com";
"tbl_pk_id" = 133;
"third_approver" = "TRY-Employee-5@aw.com";
"upload_id" = 1;

}

Мне нужно получить идентификатор, идентификатор правила и загрузить идентификатор из этого словаря и добавить эти значения в вызов моего второго API. Я не уверен, какой тип данных я получу в этом, поэтому я взял "Любой"

для этого я пишу свой код

    func getSalaryReviewDetailApi()
    {


  var userID:Any = 0
        var ruleID :Any = 0
        var uploadID :Any = 0

        // Get paramters from dict
        if (self.dictEmployeeDetail.object(forKey: "id") != nil){
            userID = self.dictEmployeeDetail.object(forKey: "id") as Any
        }

        if (self.dictEmployeeDetail.object(forKey: "rule_id") != nil){
            ruleID = self.dictEmployeeDetail.object(forKey: "rule_id") as Any
        }

        if(self.dictEmployeeDetail.object(forKey: "upload_id") != nil){
            uploadID = self.dictEmployeeDetail.object(forKey: "upload_id") as Any
        }

        let apiToContact = ApiConstants.UrlBase+ApiConstants.EndPointGetSalaryReviewDetail+"\(userID)/\(ruleID)/\(uploadID)"        
        print("Api Calling \(apiToContact)")

        }

но в печати это

Я получаю это

 https://test.company.in/user-portal/api/team/employeeincrement/Optional(134)/Optional(1)/Optional(1)

как убрать опционально отсюда и получить его значение.

Спасибо

1 Ответ

0 голосов
/ 07 мая 2018

Попробуйте с этим,

let apiToContact = ApiConstants.UrlBase+ApiConstants.EndPointGetSalaryReviewDetail+"\(userID!)/\(ruleID!)/\(uploadID!)"        

UPDATE

if (self.dictEmployeeDetail.object(forKey: "id") != nil){
    userID = self.dictEmployeeDetail.object(forKey: "id") as Int
}

альтернативный способ сделать это,

if (self.dictEmployeeDetail["id"] != nil){
    userID = self.dictEmployeeDetail["id"] as Int
}

и, пожалуйста, прочитайте о опциях в Swift

...