Begrenzt die Core-Daten die Länge der Strings?

8

Ich habe mich gefragt, ob es Grenzen für die Länge von Strings gibt, die mit Core Data in iOS gespeichert werden. (außer verfügbarem RAM oder Speicherplatz auf dem Gerät)

    
adriaan 26.04.2012, 01:50
quelle

4 Antworten

8

Ich denke, dass Sie eher die Leistungsgrenzen auf einem iOS-Gerät erreichen, bevor Sie Speichergrenzen in Core Data treffen. Sie erhalten auch einen Leistungseinbruch, wenn Sie große Datenblöcke ziehen.

Sie sind besser dran, sowohl hinsichtlich der Leistung als auch der Verwaltbarkeit, indem Sie große Textblöcke in kleinere Blöcke aufteilen.

Soweit ich mich erinnern kann, erzählt mir Marcus Zarra trotzdem.

    
Abizern 26.04.2012, 04:04
quelle
4

Nur um zu bestätigen, dass es in CoreData keine spezifischen Grenzen gibt (Speicher- / Speicherplatzbeschränkungen werden nicht berücksichtigt). Bei der Verwendung von CoreData unter iOS verwenden Sie fast ausschließlich sqlite als persistenten Speicher. CoreData speichert String als Varchar und aus Sicht von sqlite:

SQLite erzwingt die Länge eines VARCHAR nicht. Sie können ein VARCHAR (10) deklarieren und SQLite speichert dort gerne eine 500-Millionen-Zeichenkette. Und es wird alle 500 Millionen Zeichen intakt halten. Dein Inhalt wird niemals abgeschnitten. SQLite versteht, dass der Spaltentyp von "VARCHAR (N)" mit "TEXT" identisch ist, unabhängig vom Wert von N.

... stammt aus sqlites FAQ

    
JakubKnejzlik 02.02.2016 14:13
quelle
3
___ qstnhdr ___ Begrenzt die Core-Daten die Länge der Strings? ___ antwort10326489 ___

Soweit ich es beurteilen kann, gibt es keine Begrenzung, es sei denn, Sie vergeben eine in der Modelldatei (es gibt einen Abschnitt für minimale Länge und maximale Länge).

    
___ tag123objectivec ___ Dieses Tag sollte nur bei Fragen verwendet werden, die sich auf Objective-C-Funktionen beziehen oder von Code in der Sprache abhängen. Die Tags [Kakao] und [Kakao-Touch] sollten verwendet werden, um nach Frameworks oder Klassen von Apple zu fragen. Verwenden Sie die verwandten Tags [ios], [macos], [apple-watch] und [tvos] für Probleme, die für diese Plattformen spezifisch sind. ___ qstntxt ___

Ich habe mich gefragt, ob es Grenzen für die Länge von Strings gibt, die mit Core Data in iOS gespeichert werden. (außer verfügbarem RAM oder Speicherplatz auf dem Gerät)

    
___ tag123ios ___ iOS ist das mobile Betriebssystem, das auf dem Apple iPhone, iPod touch und iPad ausgeführt wird. Verwenden Sie dieses Tag [ios] für Fragen zur Programmierung auf der iOS-Plattform. Verwenden Sie die verwandten Tags [objective-c] und [swift] für Probleme, die für diese Programmiersprachen spezifisch sind. ___ answer10326890 ___

Ich erinnere mich nicht daran, irgendwelche Grenzen in den Core Data-Dokumentationen zu lesen, aber denken Sie daran, dass Core Data nur ein Framework über einer realen Datenbank ist, normalerweise sqlite. Ich denke, man kann davon ausgehen, dass die Grenzen von der zugrunde liegenden Datenbank vorgegeben werden.

    
___ tag123nsstring ___ NSString ist die Klartext-Zeichenfolgenklasse in Cocoa und Cocoa Touch. Siehe auch NSMutableString, NSData und NSMutableData (für Objekte, die anstelle von Zeichen für die menschliche Sprache Byte enthalten) und NSAttributedString und NSMutableAttributedString (für Rich-Text-Zeichenfolgen). ___ tag123coredata ___ Core Data ist das Objektmodellierungs- und Persistenz-Framework von Apple für Mac OS und iOS. Xcode bietet einen Objektmodelleditor zum Festlegen von Entitäten, Attributen und Beziehungen. ___ answer10327081 ___

Ich denke, dass Sie eher die Leistungsgrenzen auf einem iOS-Gerät erreichen, bevor Sie Speichergrenzen in Core Data treffen. Sie erhalten auch einen Leistungseinbruch, wenn Sie große Datenblöcke ziehen.

Sie sind besser dran, sowohl hinsichtlich der Leistung als auch der Verwaltbarkeit, indem Sie große Textblöcke in kleinere Blöcke aufteilen.

Soweit ich mich erinnern kann, erzählt mir Marcus Zarra trotzdem.

    
___ answer35155770 ___

Nur um zu bestätigen, dass es in CoreData keine spezifischen Grenzen gibt (Speicher- / Speicherplatzbeschränkungen werden nicht berücksichtigt). Bei der Verwendung von CoreData unter iOS verwenden Sie fast ausschließlich sqlite als persistenten Speicher. CoreData speichert String als Varchar und aus Sicht von sqlite:

SQLite erzwingt die Länge eines VARCHAR nicht. Sie können ein VARCHAR (10) deklarieren und SQLite speichert dort gerne eine 500-Millionen-Zeichenkette. Und es wird alle 500 Millionen Zeichen intakt halten. Dein Inhalt wird niemals abgeschnitten. SQLite versteht, dass der Spaltentyp von "VARCHAR (N)" mit "TEXT" identisch ist, unabhängig vom Wert von N.

... stammt aus sqlites FAQ

    
___
borrrden 26.04.2012 02:36
quelle
1

Ich erinnere mich nicht daran, irgendwelche Grenzen in den Core Data-Dokumentationen zu lesen, aber denken Sie daran, dass Core Data nur ein Framework über einer realen Datenbank ist, normalerweise sqlite. Ich denke, man kann davon ausgehen, dass die Grenzen von der zugrunde liegenden Datenbank vorgegeben werden.

    
John Estropia 26.04.2012 03:39
quelle