2016-07-28 3 views
2

Ich benutze Unicode ("\ uE43B") in UILabel, die seltsame Sache ist es funktioniert im Simulator, aber funktioniert nicht in realen Gerät. Der Code ist unten:Special Emoji nicht korrekt in Gerät

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)]; 
[self.view addSubview:label]; 
label.text = @"The emoji is:\uE43B"; 
label.textAlignment = NSTextAlignmentCenter; 

Das Ergebnis läuft im Simulator:

enter image description here

Als ich es in meinem Gerät (iPhone6 ​​9.3.2) laufen, es zeigt ein Rechteck Charakter.

enter image description here

I Google haben die Suche nach \uE43B und this site sagt:

Dies ist ein für privaten Gebrauch Codepunkt. Das heißt, es ist absichtlich keinem Zeichen zugeordnet. Es wurde in Version 1.1 zu Unicode hinzugefügt und gehört zum Block Private Use Area.

Aber ich verstehe immer noch nicht, wie Simulator funktioniert, einige Apps wie WeChat können auch die Emoji zeigen.

+0

Dieses Problem tritt nur bei \ uE438 auf? – David

+0

Ich glaube nicht. – KudoCC

Antwort

1

Sie verwenden wahrscheinlich eine benutzerdefinierte Schriftart auf Ihrem Mac, die Sie nicht auf Ihrem iPhone verwenden. Wie Sie bemerken, ist dies kein richtiger Unicode-Codepunkt. Es ist ein privat genutzter Charakter. Diese Codepunkte können den Zeichensätzen hinzugefügt werden, wenn sie dies wünschen.

Der iOS-Simulator ist nur eine Mac-Anwendung, die eine Mac-kompatible Version von UIKit enthält. Dinge, die auf Ihrem Mac verfügbar sind, stehen dem Simulator zur Verfügung, auch wenn sie auf iOS-Geräten nicht verfügbar sind.

Das besondere Zeichen, auf das Sie verweisen, ist U+1F38F (CARP STREAMER). Ich weiß nicht, warum Sie es U + E43B zugeordnet haben. Es ist möglich, dass Sie eine asiatische Schriftart haben, die dies als Legacy-Codepunkt enthält (eine häufige Verwendung der Zeichen für die private Verwendung).

+0

Danke, es funktioniert mit 'label.text = @" Das Emoji ist: \ U0001f38f ";'. Ich bin gespannt, wie du das U + 1F38F so schnell mit einem falschen Unicode gefunden hast. – KudoCC

+0

Diese Suche: http://emojipedia.org/search/?q=fish –

+0

Vielen Dank! – KudoCC