Je me demandais juste comment je serais capable d'utiliser un code à barres recherché pour aller chercher des données de base dans Swift. Je passe essentiellement un code à barres à une méthode static func
, mais comment pourrais-je l'utiliser pour extraire les données à partir des données de base?Comment chercher en utilisant la chaîne dans swift
Voici le code à barres lorsque détecté:
func barcodeDetected(code: String) {
// Let the user know we've found something.
let alert = UIAlertController(title: "Found a Barcode!", message: code, preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Search", style: UIAlertActionStyle.Destructive, handler: { action in
// Remove the spaces.
let trimmedCode = code.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
// EAN or UPC?
// Check for added "0" at beginning of code.
let trimmedCodeString = "\(trimmedCode)"
var trimmedCodeNoZero: String
if trimmedCodeString.hasPrefix("0") && trimmedCodeString.characters.count > 1 {
trimmedCodeNoZero = String(trimmedCodeString.characters.dropFirst())
// Send the doctored barcode
ProductDetailsViewController.searchCode(trimmedCodeNoZero)
} else {
// Send the doctored barcode
ProductDetailsViewController.searchCode(trimmedCodeString)
}
self.navigationController?.popViewControllerAnimated(true)
}))
self.presentViewController(alert, animated: true, completion: nil)
}
ma classe de produit:
import UIKit
import Foundation
import CoreData
class ProductDetailsViewController: UIViewController, NSFetchedResultsControllerDelegate {
@IBOutlet weak var productLabel: UILabel!
@IBOutlet weak var priceLabel: UILabel!
@IBAction func addProduct(sender: AnyObject) {
let AppDel = UIApplication.sharedApplication().delegate as? AppDelegate
let context:NSManagedObjectContext = (AppDel?.managedObjectContext)!
let ent = NSEntityDescription.entityForName("Products", inManagedObjectContext: context)
var newProduct = ProductItem(entity: ent!, insertIntoManagedObjectContext: context)
newProduct.title = productLabel.text
//newProduct.price = priceLabel.text
/*context.save(nil)
print(newProduct)
print("Object Saved")*/
}
private(set) var PRODUCT_NAME = ""
private(set) var PRODUCT_PRICE = ""
private var menuItems:[ProductItem] = []
static func searchCode(codeNumber: String) -> String{
let barcodeNumber = codeNumber
return barcodeNumber
}
deinit{
NSNotificationCenter.defaultCenter().removeObserver(self)
}
override func viewDidLoad() {
super.viewDidLoad()
productLabel.text = "Scan a Product"
priceLabel.text = ""
NSNotificationCenter.defaultCenter().addObserver(self, selector: "setLabels:", name: "ProductNotification", object: nil)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
je l'ai déjà ajouté les éléments dans succès Core Data et a été en mesure de charger tous les éléments dans une table dans mon app. Maintenant, avec le code à barres scanné, je veux être en mesure de charger les produits avec le code à barres et je suis coincé sur cette partie. Comme vous pouvez le voir, mon code de recherche est le code à barres de code à barres, mais que dois-je faire pour le récupérer? Merci.
EDIT:
Core Data Entity
import Foundation
import CoreData
@objc(ProductItem)
class ProductItem: NSManagedObject{
@NSManaged var barcodeNum:String?
@NSManaged var box_height:NSNumber?
@NSManaged var box_length:NSNumber?
@NSManaged var box_width:NSNumber?
@NSManaged var price:NSNumber?
@NSManaged var sku:String?
@NSManaged var weight:NSNumber?
@NSManaged var title:String?
}
Toute aide à quelqu'un? Serait reconnaissant, merci. – CodingKid92
Pouvez-vous afficher les détails de votre entité? L'attribut qui contient le code à barres n'est pas clair. Clarifiez également la hiérarchie du contrôleur de vue - quel VC est votre premier code? Et que voulez-vous faire une fois que vous avez récupéré l'objet concerné à partir de CoreData? – pbasdf
Je l'ai édité avec mon Core Data Entity. L'attribut qui contient le code à barres est barcodeNum. De plus, une fois que l'objet barcodeNum est extrait, je veux pouvoir afficher tous les autres attributs liés au code à barres. Mais mon problème est une fois que le code à barres est scanné à partir de mon ViewController et transmis à mon ProductsViewController, je suis coincé sur ce qu'il faut faire ensuite. @pbasdf – CodingKid92