首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何定制快速纤维素酶

如何定制快速纤维素酶
EN

Stack Overflow用户
提问于 2021-11-25 16:00:40
回答 1查看 48关注 0票数 0

你好,我是乞讨者,我得到了一个错误,“不能将‘字符’类型的值赋值给'String'”,如何修复我的大脑在这个代码博客enter code here中丢失的问题?

进口UIKit FirebaseFirestore进口FirebaseAuth进口FirebaseDatabase进口FirebaseStorage

类PhoneViewController: UIViewController {

代码语言:javascript
复制
@IBOutlet weak var tableView: UITableView!

var phoneModelText = [String]()
var imeiAdressText = [String]()
var userNameText = [String]()
var idText = [String]()
var phoneNumberText = [String]()
var detailsText = [String]()
var dateText = [String]()
var priceText = [String]()
var adressText = [String]()


var selectedPhoneModelText = ""
var selectedimeiAdressText = ""
var selecteduserNameText = ""
var selectedidText = ""
var selectedphoneNumberText = ""
var selecteddetailsText = ""
var selecteddateText = ""
var selectedpriceText = ""
var selectedadressText = ""

override func viewDidLoad() {
    super.viewDidLoad()
    navigationController?.navigationBar.prefersLargeTitles = true
    tableView.dataSource = self
    tableView.delegate = self
    getdata()
    
    
}

func makeAlert(titleInput: String, messageInput : String) {
    let alert = UIAlertController(title: titleInput, message: messageInput, preferredStyle: UIAlertController.Style.alert)
    let okButton = UIAlertAction(title: "Ok", style: UIAlertAction.Style.default, handler: nil)
    alert.addAction(okButton)
    present(alert, animated: true, completion: nil)
}



func fetchBook(documentId: String) {
    let db = Firestore.firestore()
  let docRef = db.collection("Databases").document(documentId)
  docRef.getDocument { document, error in
    if let error = error as NSError? {
        self.makeAlert(titleInput: "alert", messageInput: "\(error.localizedDescription)")
    }
    else {
      if let document = document {
        let id = document.documentID
        let data = document.data()
        let phonemodel = data?["phoneName"] as? String ?? ""
        let imeiadress = data?["imeiNumberText"] as? Int ?? 0
        let username = data?["userNameText"] as? String ?? ""
        let idcard = data?["idCardtext"] as? Int ?? 0
        let phonenumber = data?["phoneNumberText"] as? Int ?? 0
        let adress = data?["adressNameText"] as? String ?? ""
        let details = data?["detailSectionText"] as? String ?? ""
        let date = data?["currentDateText"] as? String ?? ""
        let price = data?["priceValueText"] as? Int ?? 0
        let image = data?["imageurl"] as? String ?? ""
          
          

          DispatchQueue.main.async {
              self.selectedphoneNumberText = phonemodel
              
              
              
             self.phoneModelText.text = phonemodel
              self.imeiAdressText.text = String(imeiadress)
              self.userNameText.text = username
              self.idText.text = String(idcard)
              self.phoneNumberText.text = String(phonenumber)
              self.adressText.text = adress
              self.detailsText.text = details
              self.dateText.text = date
              self.priceText.text = String(price)

          }

      }
    }

  }
}

}

扩展PhoneViewController : UITableViewDataSource,UITableViewDelegate {

代码语言:javascript
复制
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return phoneModelText.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = UITableViewCell()
    cell.textLabel?.text = phoneModelText[indexPath.row]
    return cell
}



func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    // how i customizing there
    

  
           performSegue(withIdentifier: "toPhoneListView", sender: nil)
    }

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "toPhoneListView" {
        let destinationVC = segue.destination as! PhoneListViewController
        destinationVC.selectedPhoneModelText
        destinationVC.selectedimeiAdressText
        destinationVC.selecteduserNameText
        destinationVC.selectedidText
        destinationVC.selectedphoneNumberText
        destinationVC.selecteddetailsText
        destinationVC.selecteddateText
        destinationVC.selectedpriceText
        destinationVC.selectedadressText
       }
   }

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-26 18:21:55

这就是如何定义phoneModelText的方法

代码语言:javascript
复制
var phoneModelText = [String]()

这表明phoneModelText是一个字符串数组,因此它看起来如下所示

代码语言:javascript
复制
phoneModelText[0] = "Some String"
phoneModelText[1] = "Another string"

但之后,您将尝试将字符串分配给该数组

代码语言:javascript
复制
self.phoneModelText.text = phonemodel

这不是数组的工作方式。如果要将phoneModel添加到数组中,则如下所示

代码语言:javascript
复制
self.phoneModelText.append(phoneModel) //assume phoneModel = "yet another string"

那么数组就会如下所示

代码语言:javascript
复制
phoneModelText[0] = "Some String"
phoneModelText[1] = "Another string"
phoneModelText[2] = "yet another string"

通常,我建议命名您的vars,以便它们更多地表示它们包含的内容--而不是phoneModelText,称为phoneModelTextArray。这将减少混乱,并使代码更具可读性。

至于解决方案,还不清楚为什么会有一堆数组

代码语言:javascript
复制
var phoneModelText = [String]()
var imeiAdressText = [String]()
var userNameText = [String]()

但我建议你改变这一切。一种选择是定义一个具有属性的类,然后拥有一个类数组。

代码语言:javascript
复制
class ContactClass {
   var id = ""
   var phoneText = ""
   var imeiAdressText = ""
   var userNameText = ""
}

然后是控制器中的类数组。

代码语言:javascript
复制
var contactArray = [ContactClass]()

最后,在从Firebase读取数据时,实例化类,填充类属性并将类添加到数组中

代码语言:javascript
复制
else {
  if let document = document {
    let contact = ContactClass()
    
    contact.id = document.documentID
    contact.phoneText = data?["phoneName"] as? String ?? ""
    contact.imeiAdressText = data?["imeiNumberText"] as? Int ?? 0
    contact.userNameText = data?["userName"] as? String ?? ""
    
    self.contactArray.append(contact)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70114102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档