Friday, 3 November 2017

Nsstring till nsdata binära alternativ


NSString eller NSData Ive har förändrat mig som är det bästa på lång sikt, och just nu förvirrar jag mig själv, så jag trodde att Id frågar om råd. Jag skriver ett program som kommer att samla nyttolasterna av TCP-paket på tråden och (bland annat) rekonstruera dem. Just nu vill jag bara ha texten i transaktionen, men så småningom kanske jag vill kunna spara som en bild eller någon annan (godtycklig) fil. Jag började använda NSString internt för att lagra data, eftersom jag införde RTF-kommandon för att formatera texten med färger för att beteckna clienterverinfo. Nu flyttar jag till att inte infoga RTF tills den visas, så jag kan göra andra manipulationer på den, om det behövs. Problemet jag kollar in är att Ive använt NSMutableString-metoder för att ersätta förekomster av strängar och infoga RTF-kommandon som enkla konstruktioner. Det verkar som att NSData ger mig mindre flexibilitet att kunna ändra innehållet innan det diskuteras, men jag vill inte orsaka problem om jag lagrar binär data i en NSString. Dessutom ser jag inte offhand hur man konverterar NSData tillbaka till en NSString. Vilken rutt är bäst för denna typ av ansökan Tack, Eric cacao-dev-postlista ltcocoa-dev. gt HelpUnsubscribeArchives: lists. applemailmanlistinfococoa-dev Skicka inte administratörsförfrågningar till listan. De kommer att ignoreras. Din instinkt är korrekt att NSData och NSMutableData är de rätta verktygen för hantering av bytesflöden. NSData är en klass som representerar bitar av byte i deras bokstavsrepresentation, eftersom de kan komma från ett uttag eller gå in i en fil. NSString representerar en tolkning av en bit av byte som en serie tecken beroende på kodningssystemet, mappningen mellan byte och tecken behöver inte vara enkel (UTF-8 tecken är mellan en och fyra byte långa). NSString vet också om saker som jämförelser, formatkonverteringar och substitutioner, som beror på egenskaperna hos tecken, skiljer sig från byte. Eftersom NSString lagrar data i tolkad form, bör du behandla dataflöde till NSString som envägs tills det bevisats annars. Du kan inte flytta en godtycklig buffert till en NSString och backa ut och garantera ett identiskt resultat. Använd NSData när du bryr dig om att behålla de ursprungliga bitarna, eller syfta till att producera en specifik bytesekvens för tråden eller en fil. RTF räknas som data som beter sig som en sträng, strängföreställningen och den binära representationen kan bytas utan betydelseförlust (så länge du vet vilken strängkodning som användes för binär representation). En bild är ett exempel på data som ska lämnas i NSData. Nedsidan av att hålla fast vid NSData är att du kastat tillbaka till standard C-biblioteket för saker som sökningar. För konvertering från NSData till NSString: Du har märkt NSStrings initWithData: encoding: method Du bör också titta på NSAttributedString och NSMutableAttributedString. Dessa är klasser som gör vad du verkar tänka på med strängar - lägg till och manipulera färger och andra attribut - och de kan producera och initieras från RTF. Se - NSAttributedString RTFFromRange: documentAttributes: for example. På din plats skulle jag inte bry mig om att perfekta min egen RTF-generator, när jag redan hade ett biblioteksramverk för att ange min sträng och dess färger och få rätt RTF gratis. Den 21 juli 2004 kl. 18:17 skrev The Baur Family: gt Im skriver ett program som kommer att samla nyttolasten av TCP-paket på gt-tråden och (bland annat) rekonstruera dem. Just nu vill jag bara ha texten i transaktionen, men så småningom kanske jag vill kunna gt spara bort som en bild eller någon annan (godtycklig) fil. gt gt Jag började använda NSString internt för att lagra data, eftersom jag var gt inserting RTF-kommandon för att formatera texten med färger för att beteckna gt clientserver info. Nu flyttar jag till att inte infoga RTF tills gt visas, så jag kan göra andra manipulationer på den, om det behövs. gt gt Problemet jag kollar in är att Ive använt NSMutableString gt-metoder för att ersätta förekomster av strängar och infoga RTF-kommandon gt som enkla konstruktioner. Det verkar som att NSData ger mig mindre flexibilitet för att kunna ändra innehållet innan det diskuteras, gt men jag vill inte orsaka problem om jag lagrar binär data i en gt NSString. Dessutom ser jag inte offhand hur man konverterar NSData tillbaka till en gt NSString. gt gt Vilken rutt är bäst för denna typ av ansökan kakao-dev-postlistor ltcocoa-dev. gt HelpUnsubscribeArchives: lists. applemailmanlistinfococoa-dev Skicka inte administratörsförfrågningar till listan. De kommer att ignoreras. Tors, 22 Jul 2004 11:35:37 -0500, Fritz Anderson ltfritza. gt skrev: gt Nedsidan av att hålla fast vid NSData är att du kastat tillbaka till gt standard C-biblioteket för saker som sökningar. gt har gjort det under en lång tid kan du erbjuda en pekare på var du ska gräva mer information om det Eller ska jag bara dra ut mina gamla C-referenser gt För omvandling från NSData till NSString: Du har märkt NSStrings gt initWithData: kodning: metod gt Oops. Såg det på en gång, glömde det för det här projektet. -) gt Du bör också titta på NSAttributedString och gt NSMutableAttributedString. Det här är klasser som gör vad du verkar för att tänka på strängar - lägg till och manipulera färger och andra attribut gt - och de kan producera och initieras från RTF. Se gt - NSAttributedString RTFFromRange: documentAttributes: for example. På din plats skulle jag inte stör mig med att göra en egen RTF-generator, gt när jag hade ett bibliotekskonfiguration redan på plats för att ange min string gt och dess färger och få rätt RTF gratis. gt Jag insåg i går kväll att jag hade glömt NSAttributedString - Jag är glad att du nämnde det. Jag går noga tillbaka och försöker istället. Jag ändrade i huvudsak bara färger och i ett ögonblick ser det ut att det är ganska enkelt utan att jag behöver oroa mig för kontrolltecken. (Faktum är att de flesta strängmanipulationerna har att göra med att hantera backslashes och liknande - men med en attributsträng, hoppas jag att jag kan glömma det.) Tack, Eric cacao-dev-postlistan ltcocoa-dev. gt HelpUnsubscribeArchives: lists. applemailmanlistinfococoa-dev Skicka inte administratörsförfrågningar till listan. De kommer att ignoreras. NSString initWithData: NSUTF8StringEncoding - returnerar ingen Jag läser en RTF-fil som finns i en binär fil. Jag behöver skapa en RTF-fil på HD - men har problem när jag försöker flytta data genom systemet. Följande kodserie fungerar ibland med samma data: NSString theString NSString alloker initWithData: strData-kodning: NSUTF8StringEncoding Denna kodlinje fungerar alltid - med samma dataingång: NSString theString NSString alloker initWithData: strData-kodning: NSASCIIStringEncoding Data är en RTF-fil som för närvarande inte innehåller några speciella UTF8-tecken - men kunde. Några idéer om hur bättre att skapa en UTF8-sträng från data Tack för vad som helst insikt kan komma ihåg, den 3 december 2004 kl 9:52 skrev Lance Drake: gt Jag läser en RTF-fil som finns i en binär fil. Jag behöver gt att skapa en RTF-fil på HD - men har problem när jag försöker flytta data genom systemet. gt gt Följande kod kod fungerar ibland med samma data: gt NSString theString NSString alloker initWithData: strData gt kodning: NSUTF8StringEncoding gt gt Den här koderna fungerar alltid - med samma dataingång: gt NSString theString NSString alloker initWithData: strData gt kodning: NSASCIIStringEncoding gt gt Data är en RTF-fil som för närvarande inte innehåller några speciella UTF8-tecken - men kan. Innehållet i en RTF-fil kan se ut som en sträng, men de är inte de ska behandlas som data. Lämna den som en NSData och läs och skriv den med NSData-metoder. gt Innehållet i en RTF-fil kan se ut som en sträng, men de är inte gt de ska behandlas som data. Lämna den som en NSData och läs och gt skriva den med NSData-metoder. gt Douglas Davidson Det är utmärkt feedback och råd. Det hände mig - (efter att jag själv skickat frågan) - Varför bry sig genom NSString-fasen - skriv bara data till en fil. Så du har bekräftat mina tankar och jag uppskattar din speciellt snabb hjälp. UTF-8 förutsätter också att ingångsdata är en vanlig UTF-8-sträng eller en nullterminerad unikar, även om UTF-8 omfattar alla ASCII, charmen kanske inte stämmer korrekt för vissa tecken och som standard använder init-metoderna nonLossy-kodning så om en okänd exakt karaktär uppträder, returneras noll. På fredagen, 3 dec 2004 10:04:45 -0800, Douglas Davidson ltddavidso. gt skrev: gt gt gt gt Den 3 december 2004 kl 9:52 skrev Lance Drake: gt gtgt Im läser en RTF-fil som finns i en binär fil. Jag behöver gtgt för att skapa en RTF-fil på HD - men har problem när jag försöker flytta data genom systemet. gtgt gtgt Följande kodregel fungerar ibland med samma data: gtgt NSString theString NSString alloker initWithData: strData gtgt kodning: NSUTF8StringEncoding gtgt gtgt Denna kodlinje fungerar alltid - med samma dataingång: gtgt NSString theString NSString alloker initWithData: strData gtgt-kodning: NSASCIIStringEncoding gtgt gtgt Data är en RTF-fil som för närvarande inte innehåller några speciella gtgt UTF8-tecken - men kunde. gt gt innehållet i en RTF-fil kan se ut som en sträng, men de är inte gt de bör behandlas som data. Lämna den som en NSData och läs och gt skriva den med NSData-metoder. gt gt Douglas Davidson gt gt gt gt Skicka inte administratörsförfrågningar till listan. De kommer att ignoreras. gt Kakao-dev-postlista (ltCocoa-dev. gt) gt HjälpUnsubscribeUppdatera din prenumeration: gt lists. applemailmanoptionscocoa-devltkarl. adam. gt gt gt Detta e-postmeddelande skickades till ltkarl. adam. gt gtiOS 7: Base64 Koda och avkoda NSData och NSString-objekt Med release av iOS 7 lade Apple till stöd för kodning och avkodning av data med hjälp av Base64. I det här inlägget går vi igenom två exempel med Base64 för att koda och avkoda både NSData och NSString-objekt. Först ska vi skapa ett NSString-objekt som genereras av Base64 som kodar för ett NSData-objekt. Detta följs av avkodning av Base64 NSString tillbaka till ett NSData-objekt. Vi kommer att visa NSString-data, både kodade och avkodade för att se till att allt är bra. Det andra exemplet kommer att koda och avkoda NSData från Base64. Detta exempel är relevant om du har ett NSData-objekt som måste vara Base64-kodat, eller du måste avkoda ett Base64 NSData-objekt (av vilken anledning som helst). Skapa ett Base64-kodat NSString-objekt Let8217s börjar med att koda ett NSData-objekt i Base64 och returnera ett NSString-objekt:

No comments:

Post a Comment