La matriz está vacía después de la conversión de NSARRAY a SWIFT ARRAY -- ios campo con arrays campo con swift campo con nspredicate camp Relacionados El problema

Array is empty after the conversion of NSArray to Swift Array


0
vote

problema

Español

Estoy jugando con Swift recientemente. Estoy haciendo una función de búsqueda con Tableview personalizada. He seguido este tipo para hacer que mi búsqueda funcione perfectamente, pero yo Un problema en la conversión de NSARRAY a SWIFT ARRAY.

Aquí está mi código.

  /**  * @Route("/a", name="a")  * @Method("GET")  */ public function aAction(Request $request) {     return $this->render('AppBundle:Ksiazka:a.html.twig', array()); }  0  

proceso de clase

  /**  * @Route("/a", name="a")  * @Method("GET")  */ public function aAction(Request $request) {     return $this->render('AppBundle:Ksiazka:a.html.twig', array()); }  111  

He impreso la matriz y el resultado es así.

  /**  * @Route("/a", name="a")  * @Method("GET")  */ public function aAction(Request $request) {     return $this->render('AppBundle:Ksiazka:a.html.twig', array()); }  2  

después de la conversión que se filtra. Recibo una matriz vacía que me golpeó la exc_bad_instruction .

¿Hay alguna manera de convertir mi /** * @Route("/a", name="a") * @Method("GET") */ public function aAction(Request $request) { return $this->render('AppBundle:Ksiazka:a.html.twig', array()); } 3 a la matriz rápida sin afectar mis datos dentro del NSARRAY?

Gracias

Original en ingles

I am playing around with Swift recently. I am doing a search function with custom TableView. I have followed this guy in order to make my search work perfectly, but I a problem at the conversion from NSArray to Swift Array.

Here is my code.

func updateSearchResultsForSearchController(searchController: UISearchController) {     filtered.removeAll(keepCapacity: false)     proccessArray.removeAll(keepCapacity: false)     print("start")     var array = []     for i in 0...arrProcessName.count{         if(arrProcessName[safe: i] != nil && arrRequestedBy[safe: i] != nil && arrCreationTime[safe: i] != nil && arrStatus[safe: i] != nil)         {             var newProcess = Process(process: arrProcessName[i], requestor: arrRequestedBy[i], time: arrCreationTime[i], status: arrStatus[i])             self.proccessArray.append(newProcess)         }     }     print("array: ", proccessArray)     let searchPredicate = NSPredicate(format: "status CONTAINS[c] %@", "pending")     array = (proccessArray as NSArray).filteredArrayUsingPredicate(searchPredicate)     print("array: ", array)     let arr2 = (array as Array).map { $0 as? String ?? "" }     filtered = arr2     print("filtered: ", filtered)      if(filtered.count == 0){                     searchActive = false;                 } else {                     searchActive = true;                 }     tableView?.reloadData() }  func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {     removeProgressBar()     let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! HistoryCustomCell      cell.selectionStyle = .None     cell.accessoryType = UITableViewCellAccessoryType.None      if self.searchCtrler.active {         print("processArray: ",proccessArray[indexPath.row].status as String!)         cell.lbl_status.text = proccessArray[indexPath.row].status as String!     } else {         cell.lbl_request_name.text = arrProcessName[indexPath.row]         cell.lbl_requested_by.text = "Requested by: " + arrRequestedBy[indexPath.row]         cell.lbl_creation_time.text = arrCreationTime[indexPath.row]         cell.lbl_status.text = arrStatus[indexPath.row]          switch arrStatus[indexPath.row] {             case "Completed", "Approved":                 cell.img_status.image = UIImage(named: "ic_approved")             case "Running", "Processing", "Pending":                 cell.img_status.image = UIImage(named: "ic_pending")             case "Denied", "Rejected":                 cell.img_status.image = UIImage(named: "ic_reject")             case "Error":                 cell.img_status.image = UIImage(named: "ic_terminated")             case "Retracted":                 cell.img_status.image = UIImage(named: "ic_retracted")             default:                 cell.img_status.image = UIImage(named: "")         }     }      return cell } 

Class Process

import Foundation  class Process:NSObject{ var process: NSString! var requestor: NSString! var time: NSString! var status: NSString!  init(process:NSString, requestor:NSString, time: NSString, status: NSString){     self.process = process     self.requestor = requestor     self.time = time     self.status = status }  } 

I have printed the array and the result is like this.

array:  (    "< X.Process: 0x7f8bc94cfa50>" ) 

After the conversion which is filtered. I get an empty array which hit me the EXC_BAD_INSTRUCTION.

Is there anyway to convert my NSArray to Swift Array without affect my data inside the NSArray?

Thank you

           
         
         

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

No es necesario convertir la matriz SWIFT [Process] a NSArray SOLO PARA FILTRO, puede filtrar directamente su matriz como este. < / p>

  Vector v=new Vector(); byte[] data=new byte[basicU]; while(true) {   k=audioInputStream.read(data, 0, data.length);   v.add(data);   if(k<0) break;   tot+=k; } 0 

En su caso, no es necesario usar Vector v=new Vector(); byte[] data=new byte[basicU]; while(true) { k=audioInputStream.read(data, 0, data.length); v.add(data); if(k<0) break; tot+=k; } 111 pero si lo desea,

  Vector v=new Vector(); byte[] data=new byte[basicU]; while(true) {   k=audioInputStream.read(data, 0, data.length);   v.add(data);   if(k<0) break;   tot+=k; } 2 

 

There is no need to convert Swift Array [Process] to NSArray just for filter, you can directly filter your [Process] array like this.

let filterProcess = self.proccessArray.filter { $0.status == "pending" } 

In your case there is no need to use contains but if you want then:

let filterProcess = self.proccessArray.filter { $0.status.localizedCaseInsensitiveContainsString("pending") } 
 
 
         
         

Relacionados problema

2  Datos básicos: nspredicado con objeto hecho de objeto entidad  ( Core data nspredicate with object made of entity object ) 
Por ejemplo: Hay una propiedad NSDate *4 (transformable) de Task * entity. Y tiene la intención de obtener todos los objetos que tienen NSDate * VALOR...

5  Sintaxis de la subcoxis de nspredicate  ( Nspredicate subquery syntax ) 
Tengo una especie de una matriz hostil de los diccionarios que, a su vez, tienen matrices de datos y estoy tratando de filtrar la matriz exterior en función d...

49  Datos básicos: el ID de la clave principal de una fila en la base de datos  ( Core data the primary key id of a row in the database ) 
Supongamos que tengo una lista de libros almacenados en los datos principales. Quiero buscar un libro por su ID de clave principal. Sé que el archivo SQLite c...

3  Buscar Nsarray contiene nsdicticario, con "eficiencia de tiempo"  ( Search nsarray contains nsdictionary with time efficiency ) 
Sé que ya se les pregunta mucha pregunta, sin embargo, estoy lanzando una pregunta más para atrapar. Tengo una matriz que contiene, enorme cantidad (miles de ...

0  JSON / XML analizando iPhone Nspredicate  ( Json xml parsing iphone nspredicate ) 
Estoy intentando crear un poco de aplicaciones, que utilizan XML o JSON para mostrar algo de contenido. Tengo un montón de "vistas" y quiero seleccionar sol...

1  La incendio de NsarrayController no funciona como se esperaba  ( Nsarraycontrollers fetchpredicate not working as expected ) 
Escribo una aplicación que usa datos principales para ahorrar a los amigos. Se supone que una nestable visión que muestra a todos los amigos, separados entre ...

15  ¿Cuáles son las mejores prácticas para validar las direcciones de correo electrónico en SWIFT?  ( What are best practices for validating email addresses in swift ) 
Estoy buscando el método más simple y limpio para validar el correo electrónico (cadena) en SWIFT. En Objective-C utilicé este método, pero si lo reescribo a ...

1  Filtro NSARRAY para hacer que el nuevo NSArray para su uso en Metodos de TableView  ( Filter nsarray to make new nsarray for use on tableview methods ) 
Tengo un Nsarray que se ve así: {"result": [ { "epoch":"1371333600" }, { "epoch":"1371420000" }...

0  Obtención de datos de entidad usando nspredicate  ( Fetching data from entity using nspredicate ) 
Tengo la entidad de datos básicos llamada "Canciones" que contiene detalles de los detalles de diferentes canciones. Uno de los atributos de esta entidad es "...

0  Buscar objetos que contengan sujetos con parámetro dado  ( Find objects which contains subjects with given parameter ) 
Estoy tratando de descubrir el NSPRedicate que encontrará todos los objetos que contienen sujetos con el parámetro dado. Tengo estos objetos: @interface ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos