RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-365375

Роман's questions

Martin Hope
Роман
Asked: 2022-09-05 06:10:00 +0000 UTC

将数据从 Api 传递到数组以在屏幕上显示

  • 1

其本质是数据解析的管理器

    import Foundation


protocol NetworkDataManagerDelegate: AnyObject {
    func updateInterface( _: NetworkDataManager, with currenData: CurrentData)
}

class NetworkDataManager {
    weak var delegate: NetworkDataManagerDelegate?
    func fetchCurrentData() {
        let urlString = "https://run.mocky.io/v3/1d1cb4ec-73db-4762-8c4b-0b8aa3cecd4c"
        guard let url = URL(string: urlString) else {return}
        let urlSession = URLSession(configuration: .default)
        let task = urlSession.dataTask(with: url) { data, responce, error in
            if let data = data {
                if let currentData = self.parseJSON(withData: data){
                    self.delegate?.updateInterface(self, with: currentData)
                }
            }
        }
        
        task.resume()
    }
    
    func parseJSON(withData data: Data) -> CurrentData?{
        
        let decoder = JSONDecoder()
        do {
            let currentDataData = try decoder.decode(CurrentDataData.self, from: data)
            guard let currentData = CurrentData(currentDataData: currentDataData) else {return nil}
            return currentData
        } catch let error as NSError {
            print(error)
        }
        return nil
    }
    
}

在tableViewController上我背叛了协议,其中有一个updateInterface()类,问题是如何将数据传输到单元格数组中,以便需要拉起单元格的数量?单元有一个单独的 viewController,它们实际连接到该 viewController。

查看单元格

    import UIKit

class CustomCell: UITableViewCell {

    @IBOutlet weak var skilsLable: UILabel!
    @IBOutlet weak var numbeLable: UILabel!
    @IBOutlet weak var nameLable: UILabel!
    
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

}

这是 tableViewController 本身

    class MyTableViewController: UITableViewController {

    var cell: [String] = []
    let network = NetworkDataManager()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        network.fetchCurrentData()
        network.delegate = self

        tableView.rowHeight = 150
        self.title = "Team of Developer"
    }

    // MARK: - Table view data source

    override func numberOfSections(in tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return cell.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! CustomCell
        return cell
    }
}


extension MyTableViewController: NetworkDataManagerDelegate{
    func updateInterface(_: NetworkDataManager, with currenData: CurrentData) {
        
    }
    
    
}

在此处输入图像描述

swift
  • 1 个回答
  • 10 Views
Martin Hope
Роман
Asked: 2022-09-04 19:09:55 +0000 UTC

初始化有问题吗?()

  • 0

有这段代码(//错误本身写完之后)

    struct CurrentData {
    let sliksLable: String
    let numbeLable: String
    let nameLable: String
    
    
    init?(currentDataData: CurrentDataData){
        nameLable = currentDataData.company.employees.first?.name ?? ""
        numbeLable = currentDataData.company.employees.first?.phoneNumber ?? ""
        sliksLable = currentDataData.company.employees.first?.skills //Cannot assign value of type '[String]?' to type 'String'
    }
}

我创建了带有标签的应用程序,您需要将数据从服务器传输到该标签,数据如下所示:

    {
      company: {
          name: "Avito",
          employees: [
        {
             name: "John",
             phone_number: "769453",
             skills: [
                 "Swift",
                 "iOS"
                  ]
         },
         {
             name: "Diego",
             phone_number: "987924",
             skills: [
                  "Kotlin",
                  "Android"
                 ]
         },
         {
             name: "Alfred",
             phone_number: "452533",
             skills: [
                 "Objective-C",
                 "Android",
                 "Photoshop"
                 ]
         },
    
    }

}


 
swift
  • 1 个回答
  • 10 Views
Martin Hope
Роман
Asked: 2022-08-28 17:59:44 +0000 UTC

关闭的问题

  • 0

大家好,代码如下

    struct NetworkImageManager {
    func fetchCurrentImage(completionHandler: @escaping (CurrrenImage)-> Void) {
        let urlString = "https://pixabay.com/api/?key=\(key)&q&image_type=photo"
        guard let url = URL(string: urlString) else {return}
        let urlSession = URLSession(configuration: .default)
        let task = urlSession.dataTask(with: url) { data, responce, error in
            if let data = data {
                if let currentImage = self.parseJSON(withData: data){
                    completionHandler(currentImage)
                }
            }

        }
        task.resume()
    }

    func parseJSON(withData data: Data) -> CurrrenImage? {
        let decoder = JSONDecoder()
        do {
            let currentImageData = try decoder.decode(CurrentImageData.self, from: data)
            guard let currentImage = CurrrenImage(currentImageData: currentImageData) else {return nil
            }
            return currentImage
        } catch let error as NSError {
            print(error)
        }
        return nil

    }

}

尝试将数据从一个视图传输到另一个视图时,会产生以下错误(该错误在 // 之后描述)

class CollectionViewController: UICollectionViewController {



let itemsPerRow: CGFloat = 2
let sectionInserts = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20)

let networkImageManager = NetworkImageManager()


override func viewDidLoad() {
    super.viewDidLoad()
    networkImageManager.fetchCurrentImage(completionHandler: CurrrenImage) // Cannot convert value of type 'CurrrenImage.Type' to expected argument type '(CurrrenImage) -> Void'
}
swift
  • 1 个回答
  • 10 Views
Martin Hope
Роман
Asked: 2022-04-23 04:17:26 +0000 UTC

根据从leadingSwipeActionsConfigurationForRowAt 中选择或未选择的元素替换图像

  • 0

其本质是将心的图像从空替换为填充,这取决于是否从leadingSwipeActionsConfigurationForRowAt中选择了元素(到目前为止结果只是改变了颜色)这里是代码本身

`

func favoriteActions(at indexPath: IndexPath) -> UIContextualAction {
        var object = objects[indexPath.row]
        let action = UIContextualAction(style: .normal, title: "Favorite") { (action, view, completion) in
            object.isFavorite = !object.isFavorite
            self.objects[indexPath.row] = object
            completion(true)
        }
        action.backgroundColor = object.isFavorite ? .systemGray : .systemPurple
        action.image = UIImage(systemName: "suit.heart.fill")
        return action
    }

`

在此处输入图像描述

在此处输入图像描述

swift
  • 1 个回答
  • 10 Views
Martin Hope
Роман
Asked: 2022-04-14 18:02:55 +0000 UTC

从 MapView 向 TableViewCell 传递地址时,地址在括号中传递

  • 0

这个本质就是写个培训项目,像往常一样和老师视频,一切OK,我没有。问题在于,在 MapView 上,当您拖动图钉和地址时,由于某种原因,它在括号中,尽管我没有在任何地方添加额外的括号。这是我们拥有的:

在此处输入图像描述 在此处输入图像描述

这是代码:

    import UIKit
    import MapKit
    import CoreLocation


    protocol MapViewControllerDelegate {
    func getAddress(_ address: String?)
}
class MapViewController: UIViewController {

    var mapViewControllerDelegate: MapViewControllerDelegate?
    var place = Place()
    var annatationIndentifier = "annatationIndentifier"
    var locationManager = CLLocationManager()
    var distanceOfMethre: Double = 10_000.00
    var incomeSegueIndetifire = ""
    var placeCoordinate: CLLocationCoordinate2D?
    
    
    
    @IBOutlet weak var mapView: MKMapView!
    @IBOutlet weak var mapPinImage: UIImageView!
    @IBOutlet weak var doneButton: UIButton!
    @IBOutlet weak var addressLable: UILabel!
    @IBOutlet weak var goButton: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        addressLable.text = ""
        mapView.delegate = self
        setupMapView()
        checkLocationServices()
    }
    
    @IBAction func doneButtonPressed() {
        mapViewControllerDelegate?.getAddress(addressLable.text)
        dismiss(animated: true, completion: nil)
    }
    @IBAction func centerViweInUserLocdtion() {
        showUserLocation()
    }
    
    
    @IBAction func goButtonPressed() {
        getDirections()
    }
    
    
    @IBAction func closeVC() {
        dismiss(animated: true, completion: nil)
    }


    private func setupMapView(){
        
        goButton.isHidden = true
        
        if incomeSegueIndetifire == "showPlace"{
            setupPlaceMark()
            mapPinImage.isHidden = true
            addressLable.isHidden = true
            doneButton.isHidden = true
            goButton.isHidden = false
        }
    }
    
    
    private func setupPlaceMark(){
        guard let location = place.location else {return}
        
        let geocode = CLGeocoder()
        geocode.geocodeAddressString(location) { (placemarks, error) in
            if let error = error {
                print(error)
                return
            }
            
            guard let placemarks = placemarks else { return }
            let placemark = placemarks.first
            let annatation = MKPointAnnotation()
            annatation.title = self.place.name
            annatation.subtitle = self.place.type
            
            guard let placemarkLocation = placemark?.location else {return}
            annatation.coordinate = placemarkLocation.coordinate
            self.placeCoordinate = placemarkLocation.coordinate
            
            self.mapView.showAnnotations([annatation], animated: true)
            self.mapView.selectAnnotation(annatation, animated: true)
        }
    }
    
    private func checkLocationServices(){
        if CLLocationManager.locationServicesEnabled(){
            setupLocationManager()
            checkLocationAutorization()
        } else{
            DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
                self.showAlert(title: "Your Location is not Available",
                          message: "To give permission Go to: Setting -> MyPlaces -> Location")
            }
        }
            
    }
    
    private func setupLocationManager(){
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
    }
    
    private func checkLocationAutorization(){
        switch locationManager.authorizationStatus {
        case .authorizedWhenInUse:
            if incomeSegueIndetifire == "getAddress" {showUserLocation()}
            mapView.showsUserLocation = true
            break
        case .denied:
            DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
                self.showAlert(title: "Your Location is not Available",
                          message: "To give permission Go to: Setting -> MyPlaces -> Location")
            }
            break
        case .notDetermined:
            locationManager.requestWhenInUseAuthorization()
            break
        case .restricted:
            break
        case .authorizedAlways:
            break
        @unknown default:
            print("new case is avalible")
        }
    }
    
    private func showUserLocation(){
        if let location = locationManager.location?.coordinate{
            let region = MKCoordinateRegion(center: location,
                                            latitudinalMeters: distanceOfMethre,
                                            longitudinalMeters: distanceOfMethre)
            mapView.setRegion(region, animated: true)
        }
    }
    
    private func getDirections(){
        guard let location = locationManager.location?.coordinate else {showAlert(title: "Error",
                                                                                  message: "Current location is not found")
                                                                                  return}
        guard let request = createDirectionReqest(for: location) else { showAlert(title: "Error",
                                                                                  message: "Distenation is not fount")
                                                                                  return}
        let direction = MKDirections(request: request)
        direction.calculate { (response, error) in
            if let error = error{
                print(error)
                return
            }
            
            guard let response = response else { self.showAlert(title: "Error",
                                                                message: "Diretion is not avalible")
                                                                return
            }
            for route in response.routes{
                self.mapView.addOverlay(route.polyline)
                self.mapView.setVisibleMapRect(route.polyline.boundingMapRect , animated: true )
                
                let distance = String(format: "%.1f", route.distance / 1000)
                let timeInterval = route.expectedTravelTime
                
                print("Расстояни в пути \(distance) км")
                print("Время в пути \(timeInterval) сек ")
            }
        }
    }
    
    private func createDirectionReqest(for coordinate: CLLocationCoordinate2D) -> MKDirections.Request?{
        guard let distanationCoordinate = placeCoordinate else { return nil }
        let startingLocatoin = MKPlacemark(coordinate: coordinate)
        let destinantion = MKPlacemark(coordinate: distanationCoordinate)
        
        let request = MKDirections.Request()
        request.source = MKMapItem(placemark: startingLocatoin)
        request.destination = MKMapItem(placemark: destinantion)
        request.transportType = .walking
        request.requestsAlternateRoutes = true
        
        return request
    }

    private func getCenterLocation(mapView:MKMapView) -> CLLocation{
        let latitude = mapView.centerCoordinate.latitude
        let longitude = mapView.centerCoordinate.longitude
        return CLLocation(latitude: latitude, longitude: longitude)
    }
    
    
    private func showAlert(title: String, message: String) {
        
        let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
        let okAction = UIAlertAction(title: "OK", style: .default)
        
        alert.addAction(okAction)
        present(alert, animated: true)
    }
}
    
    
    

extension MapViewController: MKMapViewDelegate {
    func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
        guard !(annotation is MKUserLocation) else { return nil }
        var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: annatationIndentifier) as? MKPinAnnotationView
        
        if annotationView == nil{
            annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: annatationIndentifier)
            annotationView?.canShowCallout = true
        }
        
        if let imageData = place.imageData{
            let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
            imageView.layer.cornerRadius = 10
            imageView.clipsToBounds = true
            imageView.image = UIImage(data: imageData)
            annotationView?.rightCalloutAccessoryView = imageView
            
        }
        return annotationView
    }
    
    func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
        let center = getCenterLocation(mapView: mapView)
        let geocoder = CLGeocoder()
        geocoder.reverseGeocodeLocation(center) { (placemarks, error) in
            if let error = error {
                print(error)
                return
            }
            
            guard let placemarks = placemarks else {return }
            let placemark = placemarks.first
            let streetName = placemark?.thoroughfare
            let buildNumber = placemark?.subThoroughfare
            
            
            DispatchQueue.main.async {
                if streetName != nil && buildNumber != nil {
                    self.addressLable.text = "(\(streetName!), \(buildNumber!))"
                } else if streetName != nil {
                    self.addressLable.text = "(\(streetName!))"
                } else {
                    self.addressLable.text = ""
                }
            }
        }
    }
    
    func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
        let render = MKPolylineRenderer(overlay: overlay as! MKPolyline)
        render.strokeColor = .blue
        return render
    }
}

    extension MapViewController: CLLocationManagerDelegate {
    func locationManagerDidChangeAuthorization(_ manager: CLLocationManager) {
        checkLocationAutorization()
    }
    
}
swift
  • 1 个回答
  • 10 Views
Martin Hope
Роман
Asked: 2022-04-10 21:46:13 +0000 UTC

从“字符串?” 到不相关的类型“MapViewController”总是失败

  • 0

我正在学习开发,这是我的代码。

     `
     override func prepare(for segue:    UIStoryboardSegue, sender: Any?) {
    
    guard let identifier = segue.identifier,
          let mapVC = segue.identifier as? MapViewController
          else {return}
    
    
    mapVC.incomeSegueIndetifire = identifier
    if identifier == "showPlace"{
        mapVC.place.name = placeName.text!
        mapVC.place.location = placeLocation.text!
        mapVC.place.type = placeType.text!
        mapVC.place.imageData = placeImage.image?.pngData()
    }
    
} `

我按照课程中的方式做了,但我在帖子标题中写了一个简短的错误。如何解决?

swift
  • 1 个回答
  • 10 Views
Martin Hope
Роман
Asked: 2021-11-29 22:15:28 +0000 UTC

约束在 xcode 中不起作用

  • 0

问题是要将分段控制器单元附加到表视图控制器,我必须将其所有内容复制到视图控制器,有趣的是单词的约束根本不起作用,无论您添加什么那里。告诉我该怎么做 在此处输入图像描述

xcode
  • 1 个回答
  • 10 Views
Martin Hope
Роман
Asked: 2021-11-26 04:07:27 +0000 UTC

通过 trailingSwipeActionsConfigurationForRowAt indexPath 删除 tableViewController 中的单元格

  • 0

底线是我有 xcode 在这一行 tableView.deleteRows(at: [indexPath.row], with: .automatic) 发誓,但否则我不太明白如何按索引删除一行。它像这样发誓“无法将'Int'类型的值转换为预期的元素类型'Array.ArrayLiteralElement'(又名'IndexPath')”

override func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
    let place = places[indexPath.row]
   
    let deliteAction = UIContextualAction(style: .normal, title: "Удалить") { (_ , _, completionHandler) in
        
        StoregeMagager.deliteObject(place)
        tableView.deleteRows(at: [indexPath.row], with: .automatic) 
        completionHandler(true)
    }
    let swipe = UISwipeActionsConfiguration(actions: [deliteAction])
    return swipe
}
swift
  • 1 个回答
  • 10 Views
Martin Hope
Роман
Asked: 2021-11-19 01:44:44 +0000 UTC

在 xcode 中降级 ios 固件

  • 0

大家好,这样的问题,我更新了xcode并开发,结果是在ios 14.2和手机14.0.1下开发。问题是如何在 xcode 中降级应用程序的版本,使其低于 14.0。

ios
  • 1 个回答
  • 10 Views
Martin Hope
Роман
Asked: 2021-11-12 20:46:23 +0000 UTC

函数及其参数

  • 0

不久前我一直在学习 swift,有些时候还不清楚,即为什么函数、初始化程序需要一个带有外部名称和本地名称的参数。用一个例子回答那些尽可能清晰和可取的问题

   struct Celsius {
   var temperatureInCelsius: Double
   init(fromFahrenheit fahrenheit: Double) {
       temperatureInCelsius = (fahrenheit - 32.0) / 1.8
   }
   init(fromKelvin kelvin: Double) {
       temperatureInCelsius = kelvin - 273.15
   }
}

 let boilingPointOfWater = Celsius(fromFahrenheit: 212.0)
 // boilingPointOfWater.temperatureInCelsius is 100.0
 let freezingPointOfWater = Celsius(fromKelvin: 273.15)
// freezingPointOfWater.temperatureInCelsius is 0.0
swift
  • 1 个回答
  • 10 Views
Martin Hope
Роман
Asked: 2020-12-25 15:47:02 +0000 UTC

启用和禁用按钮,直到事件发生

  • 0

本质是这样,在用户按下“计算”按钮之前,使剩余的按钮处于非活动状态(即使它们被按下,但不执行任何逻辑操作)。为了解决这个问题,我添加了getButton()函数,并把它挂在“开始计算”按钮的点击事件上(不执行它的功能),你把它拿出来调用,结果很奇怪,最初是按钮不活跃(一切都应该如此),但点击后它们仍然不活跃,我不明白为什么?

let startBtn = document.getElementById("start"),
budgetValue = document.querySelector(".budget-value"),
dayBudgetValue = document.getElementsByClassName('daybudget-value')[0],
lavelValue = document.getElementsByClassName('level-value')[0],
expensesValue = document.getElementsByClassName('expenses-value')[0],
optionalExpensesValue = document.getElementsByClassName('optionalexpenses-value')[0],
incomeValue = document.getElementsByClassName('income-value')[0],
monthSavingsValue = document.getElementsByClassName("monthsavings-value")[0],
yearSavingsValue = document.getElementsByClassName("yearsavings-value")[0],

expensesItem = document.getElementsByClassName("expenses-item"),
expensesBtn = document.getElementsByTagName('button')[0]/* это кнопка складывает обязатльенве расходы */ ,
optionalExpensesBtn = document.getElementsByTagName("button")[1]/*передает не обязателоные траты */,
countBtn = document.getElementsByTagName('button')[2]/*расчет дневного бюджета */,
optionalExpensesItem = document.querySelectorAll(".optionalexpenses-item"),
chooseIncome = document.querySelector(".choose-income"),
checkSavings = document.querySelector(".checksavings"),
sumValue = document.querySelector('.choose-sum'),
percentValue = document.querySelector (".choose-percent" ),
yearValue = document.querySelector(".year-value"),
monthValue = document.querySelector(".month-value"),
dayValue = document.querySelector(".day-value");


let money, time;


function getButton(){ 
    if (startBtn.onclick == true){ 
        expensesBtn.disabled = false; 
        optionalExpensesBtn.disabled = false; 
        countBtn.disabled = false; 
    } else { 
        expensesBtn.disabled = true; 
        optionalExpensesBtn.disabled = true; 
        countBtn.disabled = true; 
    }  
}; 
getButton();

startBtn.addEventListener('click', function() {

    time = prompt(' Введите дату в формате YYYY-MM-DD', '');
    money = +prompt(' Ваш бюджет в мясяц?', '');



    while (isNaN(money) || money == '' || money == null){
        money = prompt(' Ваш бюджет?', '');
    }
    appData.budget = money;
    appData.timeData = time;
    budgetValue.textContent = money.toFixed();
    yearValue.value = new Date(Date.parse(time)).getFullYear();
    monthValue.value = new Date(Date.parse(time)).getMonth() + 1;
    dayValue.value = new Date(Date.parse(time)).getDate();

});
javascript
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5