├── .gitignore ├── Example ├── NSStringEmojize.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── NSStringEmojize │ ├── DIYAppDelegate.h │ ├── DIYAppDelegate.m │ ├── DIYViewController.h │ ├── DIYViewController.m │ ├── Default-568h@2x.png │ ├── Default.png │ ├── Default@2x.png │ ├── NSStringEmojize-Info.plist │ ├── NSStringEmojize-Prefix.pch │ ├── en.lproj │ │ └── InfoPlist.strings │ └── main.m └── NSStringEmojizeTests │ ├── NSStringEmojizeTests-Info.plist │ ├── NSStringEmojizeTests.h │ ├── NSStringEmojizeTests.m │ └── en.lproj │ └── InfoPlist.strings ├── LICENSE.md ├── NSStringEmojize.podspec ├── NSStringEmojize ├── NSString+Emojize.h ├── NSString+Emojize.m └── emojis.h └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.swp 3 | *~.nib 4 | 5 | build/ 6 | 7 | .xcodeproj/ 8 | !*.xcodeproj/project.pbxproj 9 | *.mode1v3 10 | *.mode2v3 11 | 12 | xcuserdata -------------------------------------------------------------------------------- /Example/NSStringEmojize.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | DEC769E916B9AE7600764C30 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEC769E816B9AE7600764C30 /* UIKit.framework */; }; 11 | DEC769EB16B9AE7600764C30 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEC769EA16B9AE7600764C30 /* Foundation.framework */; }; 12 | DEC769ED16B9AE7600764C30 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEC769EC16B9AE7600764C30 /* CoreGraphics.framework */; }; 13 | DEC769F316B9AE7600764C30 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DEC769F116B9AE7600764C30 /* InfoPlist.strings */; }; 14 | DEC769F516B9AE7600764C30 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DEC769F416B9AE7600764C30 /* main.m */; }; 15 | DEC769F916B9AE7600764C30 /* DIYAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DEC769F816B9AE7600764C30 /* DIYAppDelegate.m */; }; 16 | DEC769FB16B9AE7600764C30 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = DEC769FA16B9AE7600764C30 /* Default.png */; }; 17 | DEC769FD16B9AE7600764C30 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DEC769FC16B9AE7600764C30 /* Default@2x.png */; }; 18 | DEC769FF16B9AE7600764C30 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DEC769FE16B9AE7600764C30 /* Default-568h@2x.png */; }; 19 | DEC76A0716B9AE7600764C30 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEC76A0616B9AE7600764C30 /* SenTestingKit.framework */; }; 20 | DEC76A0816B9AE7600764C30 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEC769E816B9AE7600764C30 /* UIKit.framework */; }; 21 | DEC76A0916B9AE7600764C30 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEC769EA16B9AE7600764C30 /* Foundation.framework */; }; 22 | DEC76A1116B9AE7600764C30 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DEC76A0F16B9AE7600764C30 /* InfoPlist.strings */; }; 23 | DEC76A1416B9AE7600764C30 /* NSStringEmojizeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DEC76A1316B9AE7600764C30 /* NSStringEmojizeTests.m */; }; 24 | DEC76A2016B9AEEE00764C30 /* NSString+Emojize.m in Sources */ = {isa = PBXBuildFile; fileRef = DEC76A1F16B9AEEE00764C30 /* NSString+Emojize.m */; }; 25 | DEC76A2316B9B13500764C30 /* DIYViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DEC76A2216B9B13500764C30 /* DIYViewController.m */; }; 26 | /* End PBXBuildFile section */ 27 | 28 | /* Begin PBXContainerItemProxy section */ 29 | DEC76A0A16B9AE7600764C30 /* PBXContainerItemProxy */ = { 30 | isa = PBXContainerItemProxy; 31 | containerPortal = DEC769DD16B9AE7500764C30 /* Project object */; 32 | proxyType = 1; 33 | remoteGlobalIDString = DEC769E416B9AE7600764C30; 34 | remoteInfo = NSStringEmojize; 35 | }; 36 | /* End PBXContainerItemProxy section */ 37 | 38 | /* Begin PBXFileReference section */ 39 | C3627488187B8D4E002E44F8 /* emojis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = emojis.h; sourceTree = ""; }; 40 | DEC769E516B9AE7600764C30 /* NSStringEmojize.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NSStringEmojize.app; sourceTree = BUILT_PRODUCTS_DIR; }; 41 | DEC769E816B9AE7600764C30 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 42 | DEC769EA16B9AE7600764C30 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 43 | DEC769EC16B9AE7600764C30 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 44 | DEC769F016B9AE7600764C30 /* NSStringEmojize-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "NSStringEmojize-Info.plist"; sourceTree = ""; }; 45 | DEC769F216B9AE7600764C30 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 46 | DEC769F416B9AE7600764C30 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 47 | DEC769F616B9AE7600764C30 /* NSStringEmojize-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSStringEmojize-Prefix.pch"; sourceTree = ""; }; 48 | DEC769F716B9AE7600764C30 /* DIYAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DIYAppDelegate.h; sourceTree = ""; }; 49 | DEC769F816B9AE7600764C30 /* DIYAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DIYAppDelegate.m; sourceTree = ""; }; 50 | DEC769FA16B9AE7600764C30 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; 51 | DEC769FC16B9AE7600764C30 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; 52 | DEC769FE16B9AE7600764C30 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; 53 | DEC76A0516B9AE7600764C30 /* NSStringEmojizeTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NSStringEmojizeTests.octest; sourceTree = BUILT_PRODUCTS_DIR; }; 54 | DEC76A0616B9AE7600764C30 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; }; 55 | DEC76A0E16B9AE7600764C30 /* NSStringEmojizeTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "NSStringEmojizeTests-Info.plist"; sourceTree = ""; }; 56 | DEC76A1016B9AE7600764C30 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 57 | DEC76A1216B9AE7600764C30 /* NSStringEmojizeTests.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSStringEmojizeTests.h; sourceTree = ""; }; 58 | DEC76A1316B9AE7600764C30 /* NSStringEmojizeTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSStringEmojizeTests.m; sourceTree = ""; }; 59 | DEC76A1E16B9AEEE00764C30 /* NSString+Emojize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Emojize.h"; sourceTree = ""; }; 60 | DEC76A1F16B9AEEE00764C30 /* NSString+Emojize.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Emojize.m"; sourceTree = ""; }; 61 | DEC76A2116B9B13500764C30 /* DIYViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DIYViewController.h; sourceTree = ""; }; 62 | DEC76A2216B9B13500764C30 /* DIYViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DIYViewController.m; sourceTree = ""; }; 63 | /* End PBXFileReference section */ 64 | 65 | /* Begin PBXFrameworksBuildPhase section */ 66 | DEC769E216B9AE7600764C30 /* Frameworks */ = { 67 | isa = PBXFrameworksBuildPhase; 68 | buildActionMask = 2147483647; 69 | files = ( 70 | DEC769E916B9AE7600764C30 /* UIKit.framework in Frameworks */, 71 | DEC769EB16B9AE7600764C30 /* Foundation.framework in Frameworks */, 72 | DEC769ED16B9AE7600764C30 /* CoreGraphics.framework in Frameworks */, 73 | ); 74 | runOnlyForDeploymentPostprocessing = 0; 75 | }; 76 | DEC76A0116B9AE7600764C30 /* Frameworks */ = { 77 | isa = PBXFrameworksBuildPhase; 78 | buildActionMask = 2147483647; 79 | files = ( 80 | DEC76A0716B9AE7600764C30 /* SenTestingKit.framework in Frameworks */, 81 | DEC76A0816B9AE7600764C30 /* UIKit.framework in Frameworks */, 82 | DEC76A0916B9AE7600764C30 /* Foundation.framework in Frameworks */, 83 | ); 84 | runOnlyForDeploymentPostprocessing = 0; 85 | }; 86 | /* End PBXFrameworksBuildPhase section */ 87 | 88 | /* Begin PBXGroup section */ 89 | DEC769DC16B9AE7500764C30 = { 90 | isa = PBXGroup; 91 | children = ( 92 | DEC76A1D16B9AEEE00764C30 /* NSStringEmojize */, 93 | DEC769EE16B9AE7600764C30 /* Example */, 94 | DEC76A0C16B9AE7600764C30 /* NSStringEmojizeTests */, 95 | DEC769E716B9AE7600764C30 /* Frameworks */, 96 | DEC769E616B9AE7600764C30 /* Products */, 97 | ); 98 | sourceTree = ""; 99 | }; 100 | DEC769E616B9AE7600764C30 /* Products */ = { 101 | isa = PBXGroup; 102 | children = ( 103 | DEC769E516B9AE7600764C30 /* NSStringEmojize.app */, 104 | DEC76A0516B9AE7600764C30 /* NSStringEmojizeTests.octest */, 105 | ); 106 | name = Products; 107 | sourceTree = ""; 108 | }; 109 | DEC769E716B9AE7600764C30 /* Frameworks */ = { 110 | isa = PBXGroup; 111 | children = ( 112 | DEC769E816B9AE7600764C30 /* UIKit.framework */, 113 | DEC769EA16B9AE7600764C30 /* Foundation.framework */, 114 | DEC769EC16B9AE7600764C30 /* CoreGraphics.framework */, 115 | DEC76A0616B9AE7600764C30 /* SenTestingKit.framework */, 116 | ); 117 | name = Frameworks; 118 | sourceTree = ""; 119 | }; 120 | DEC769EE16B9AE7600764C30 /* Example */ = { 121 | isa = PBXGroup; 122 | children = ( 123 | DEC769F716B9AE7600764C30 /* DIYAppDelegate.h */, 124 | DEC769F816B9AE7600764C30 /* DIYAppDelegate.m */, 125 | DEC76A2116B9B13500764C30 /* DIYViewController.h */, 126 | DEC76A2216B9B13500764C30 /* DIYViewController.m */, 127 | DEC769EF16B9AE7600764C30 /* Supporting Files */, 128 | ); 129 | name = Example; 130 | path = NSStringEmojize; 131 | sourceTree = ""; 132 | }; 133 | DEC769EF16B9AE7600764C30 /* Supporting Files */ = { 134 | isa = PBXGroup; 135 | children = ( 136 | DEC769F016B9AE7600764C30 /* NSStringEmojize-Info.plist */, 137 | DEC769F116B9AE7600764C30 /* InfoPlist.strings */, 138 | DEC769F416B9AE7600764C30 /* main.m */, 139 | DEC769F616B9AE7600764C30 /* NSStringEmojize-Prefix.pch */, 140 | DEC769FA16B9AE7600764C30 /* Default.png */, 141 | DEC769FC16B9AE7600764C30 /* Default@2x.png */, 142 | DEC769FE16B9AE7600764C30 /* Default-568h@2x.png */, 143 | ); 144 | name = "Supporting Files"; 145 | sourceTree = ""; 146 | }; 147 | DEC76A0C16B9AE7600764C30 /* NSStringEmojizeTests */ = { 148 | isa = PBXGroup; 149 | children = ( 150 | DEC76A1216B9AE7600764C30 /* NSStringEmojizeTests.h */, 151 | DEC76A1316B9AE7600764C30 /* NSStringEmojizeTests.m */, 152 | DEC76A0D16B9AE7600764C30 /* Supporting Files */, 153 | ); 154 | path = NSStringEmojizeTests; 155 | sourceTree = ""; 156 | }; 157 | DEC76A0D16B9AE7600764C30 /* Supporting Files */ = { 158 | isa = PBXGroup; 159 | children = ( 160 | DEC76A0E16B9AE7600764C30 /* NSStringEmojizeTests-Info.plist */, 161 | DEC76A0F16B9AE7600764C30 /* InfoPlist.strings */, 162 | ); 163 | name = "Supporting Files"; 164 | sourceTree = ""; 165 | }; 166 | DEC76A1D16B9AEEE00764C30 /* NSStringEmojize */ = { 167 | isa = PBXGroup; 168 | children = ( 169 | C3627488187B8D4E002E44F8 /* emojis.h */, 170 | DEC76A1E16B9AEEE00764C30 /* NSString+Emojize.h */, 171 | DEC76A1F16B9AEEE00764C30 /* NSString+Emojize.m */, 172 | ); 173 | name = NSStringEmojize; 174 | path = ../NSStringEmojize; 175 | sourceTree = ""; 176 | }; 177 | /* End PBXGroup section */ 178 | 179 | /* Begin PBXNativeTarget section */ 180 | DEC769E416B9AE7600764C30 /* NSStringEmojize */ = { 181 | isa = PBXNativeTarget; 182 | buildConfigurationList = DEC76A1716B9AE7600764C30 /* Build configuration list for PBXNativeTarget "NSStringEmojize" */; 183 | buildPhases = ( 184 | DEC769E116B9AE7600764C30 /* Sources */, 185 | DEC769E216B9AE7600764C30 /* Frameworks */, 186 | DEC769E316B9AE7600764C30 /* Resources */, 187 | ); 188 | buildRules = ( 189 | ); 190 | dependencies = ( 191 | ); 192 | name = NSStringEmojize; 193 | productName = NSStringEmojize; 194 | productReference = DEC769E516B9AE7600764C30 /* NSStringEmojize.app */; 195 | productType = "com.apple.product-type.application"; 196 | }; 197 | DEC76A0416B9AE7600764C30 /* NSStringEmojizeTests */ = { 198 | isa = PBXNativeTarget; 199 | buildConfigurationList = DEC76A1A16B9AE7600764C30 /* Build configuration list for PBXNativeTarget "NSStringEmojizeTests" */; 200 | buildPhases = ( 201 | DEC76A0016B9AE7600764C30 /* Sources */, 202 | DEC76A0116B9AE7600764C30 /* Frameworks */, 203 | DEC76A0216B9AE7600764C30 /* Resources */, 204 | DEC76A0316B9AE7600764C30 /* ShellScript */, 205 | ); 206 | buildRules = ( 207 | ); 208 | dependencies = ( 209 | DEC76A0B16B9AE7600764C30 /* PBXTargetDependency */, 210 | ); 211 | name = NSStringEmojizeTests; 212 | productName = NSStringEmojizeTests; 213 | productReference = DEC76A0516B9AE7600764C30 /* NSStringEmojizeTests.octest */; 214 | productType = "com.apple.product-type.bundle"; 215 | }; 216 | /* End PBXNativeTarget section */ 217 | 218 | /* Begin PBXProject section */ 219 | DEC769DD16B9AE7500764C30 /* Project object */ = { 220 | isa = PBXProject; 221 | attributes = { 222 | CLASSPREFIX = DIY; 223 | LastUpgradeCheck = 0460; 224 | ORGANIZATIONNAME = DIY; 225 | }; 226 | buildConfigurationList = DEC769E016B9AE7600764C30 /* Build configuration list for PBXProject "NSStringEmojize" */; 227 | compatibilityVersion = "Xcode 3.2"; 228 | developmentRegion = English; 229 | hasScannedForEncodings = 0; 230 | knownRegions = ( 231 | en, 232 | ); 233 | mainGroup = DEC769DC16B9AE7500764C30; 234 | productRefGroup = DEC769E616B9AE7600764C30 /* Products */; 235 | projectDirPath = ""; 236 | projectRoot = ""; 237 | targets = ( 238 | DEC769E416B9AE7600764C30 /* NSStringEmojize */, 239 | DEC76A0416B9AE7600764C30 /* NSStringEmojizeTests */, 240 | ); 241 | }; 242 | /* End PBXProject section */ 243 | 244 | /* Begin PBXResourcesBuildPhase section */ 245 | DEC769E316B9AE7600764C30 /* Resources */ = { 246 | isa = PBXResourcesBuildPhase; 247 | buildActionMask = 2147483647; 248 | files = ( 249 | DEC769F316B9AE7600764C30 /* InfoPlist.strings in Resources */, 250 | DEC769FB16B9AE7600764C30 /* Default.png in Resources */, 251 | DEC769FD16B9AE7600764C30 /* Default@2x.png in Resources */, 252 | DEC769FF16B9AE7600764C30 /* Default-568h@2x.png in Resources */, 253 | ); 254 | runOnlyForDeploymentPostprocessing = 0; 255 | }; 256 | DEC76A0216B9AE7600764C30 /* Resources */ = { 257 | isa = PBXResourcesBuildPhase; 258 | buildActionMask = 2147483647; 259 | files = ( 260 | DEC76A1116B9AE7600764C30 /* InfoPlist.strings in Resources */, 261 | ); 262 | runOnlyForDeploymentPostprocessing = 0; 263 | }; 264 | /* End PBXResourcesBuildPhase section */ 265 | 266 | /* Begin PBXShellScriptBuildPhase section */ 267 | DEC76A0316B9AE7600764C30 /* ShellScript */ = { 268 | isa = PBXShellScriptBuildPhase; 269 | buildActionMask = 2147483647; 270 | files = ( 271 | ); 272 | inputPaths = ( 273 | ); 274 | outputPaths = ( 275 | ); 276 | runOnlyForDeploymentPostprocessing = 0; 277 | shellPath = /bin/sh; 278 | shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n"; 279 | }; 280 | /* End PBXShellScriptBuildPhase section */ 281 | 282 | /* Begin PBXSourcesBuildPhase section */ 283 | DEC769E116B9AE7600764C30 /* Sources */ = { 284 | isa = PBXSourcesBuildPhase; 285 | buildActionMask = 2147483647; 286 | files = ( 287 | DEC769F516B9AE7600764C30 /* main.m in Sources */, 288 | DEC769F916B9AE7600764C30 /* DIYAppDelegate.m in Sources */, 289 | DEC76A2016B9AEEE00764C30 /* NSString+Emojize.m in Sources */, 290 | DEC76A2316B9B13500764C30 /* DIYViewController.m in Sources */, 291 | ); 292 | runOnlyForDeploymentPostprocessing = 0; 293 | }; 294 | DEC76A0016B9AE7600764C30 /* Sources */ = { 295 | isa = PBXSourcesBuildPhase; 296 | buildActionMask = 2147483647; 297 | files = ( 298 | DEC76A1416B9AE7600764C30 /* NSStringEmojizeTests.m in Sources */, 299 | ); 300 | runOnlyForDeploymentPostprocessing = 0; 301 | }; 302 | /* End PBXSourcesBuildPhase section */ 303 | 304 | /* Begin PBXTargetDependency section */ 305 | DEC76A0B16B9AE7600764C30 /* PBXTargetDependency */ = { 306 | isa = PBXTargetDependency; 307 | target = DEC769E416B9AE7600764C30 /* NSStringEmojize */; 308 | targetProxy = DEC76A0A16B9AE7600764C30 /* PBXContainerItemProxy */; 309 | }; 310 | /* End PBXTargetDependency section */ 311 | 312 | /* Begin PBXVariantGroup section */ 313 | DEC769F116B9AE7600764C30 /* InfoPlist.strings */ = { 314 | isa = PBXVariantGroup; 315 | children = ( 316 | DEC769F216B9AE7600764C30 /* en */, 317 | ); 318 | name = InfoPlist.strings; 319 | sourceTree = ""; 320 | }; 321 | DEC76A0F16B9AE7600764C30 /* InfoPlist.strings */ = { 322 | isa = PBXVariantGroup; 323 | children = ( 324 | DEC76A1016B9AE7600764C30 /* en */, 325 | ); 326 | name = InfoPlist.strings; 327 | sourceTree = ""; 328 | }; 329 | /* End PBXVariantGroup section */ 330 | 331 | /* Begin XCBuildConfiguration section */ 332 | DEC76A1516B9AE7600764C30 /* Debug */ = { 333 | isa = XCBuildConfiguration; 334 | buildSettings = { 335 | ALWAYS_SEARCH_USER_PATHS = NO; 336 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 337 | CLANG_CXX_LIBRARY = "libc++"; 338 | CLANG_ENABLE_OBJC_ARC = YES; 339 | CLANG_WARN_CONSTANT_CONVERSION = YES; 340 | CLANG_WARN_EMPTY_BODY = YES; 341 | CLANG_WARN_ENUM_CONVERSION = YES; 342 | CLANG_WARN_INT_CONVERSION = YES; 343 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 344 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 345 | COPY_PHASE_STRIP = NO; 346 | GCC_C_LANGUAGE_STANDARD = gnu99; 347 | GCC_DYNAMIC_NO_PIC = NO; 348 | GCC_OPTIMIZATION_LEVEL = 0; 349 | GCC_PREPROCESSOR_DEFINITIONS = ( 350 | "DEBUG=1", 351 | "$(inherited)", 352 | ); 353 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 354 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 355 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 356 | GCC_WARN_UNUSED_VARIABLE = YES; 357 | IPHONEOS_DEPLOYMENT_TARGET = 6.1; 358 | ONLY_ACTIVE_ARCH = YES; 359 | SDKROOT = iphoneos; 360 | }; 361 | name = Debug; 362 | }; 363 | DEC76A1616B9AE7600764C30 /* Release */ = { 364 | isa = XCBuildConfiguration; 365 | buildSettings = { 366 | ALWAYS_SEARCH_USER_PATHS = NO; 367 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 368 | CLANG_CXX_LIBRARY = "libc++"; 369 | CLANG_ENABLE_OBJC_ARC = YES; 370 | CLANG_WARN_CONSTANT_CONVERSION = YES; 371 | CLANG_WARN_EMPTY_BODY = YES; 372 | CLANG_WARN_ENUM_CONVERSION = YES; 373 | CLANG_WARN_INT_CONVERSION = YES; 374 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 375 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 376 | COPY_PHASE_STRIP = YES; 377 | GCC_C_LANGUAGE_STANDARD = gnu99; 378 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 379 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 380 | GCC_WARN_UNUSED_VARIABLE = YES; 381 | IPHONEOS_DEPLOYMENT_TARGET = 6.1; 382 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; 383 | SDKROOT = iphoneos; 384 | VALIDATE_PRODUCT = YES; 385 | }; 386 | name = Release; 387 | }; 388 | DEC76A1816B9AE7600764C30 /* Debug */ = { 389 | isa = XCBuildConfiguration; 390 | buildSettings = { 391 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 392 | GCC_PREFIX_HEADER = "NSStringEmojize/NSStringEmojize-Prefix.pch"; 393 | INFOPLIST_FILE = "NSStringEmojize/NSStringEmojize-Info.plist"; 394 | PRODUCT_NAME = "$(TARGET_NAME)"; 395 | WRAPPER_EXTENSION = app; 396 | }; 397 | name = Debug; 398 | }; 399 | DEC76A1916B9AE7600764C30 /* Release */ = { 400 | isa = XCBuildConfiguration; 401 | buildSettings = { 402 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 403 | GCC_PREFIX_HEADER = "NSStringEmojize/NSStringEmojize-Prefix.pch"; 404 | INFOPLIST_FILE = "NSStringEmojize/NSStringEmojize-Info.plist"; 405 | PRODUCT_NAME = "$(TARGET_NAME)"; 406 | WRAPPER_EXTENSION = app; 407 | }; 408 | name = Release; 409 | }; 410 | DEC76A1B16B9AE7600764C30 /* Debug */ = { 411 | isa = XCBuildConfiguration; 412 | buildSettings = { 413 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/NSStringEmojize.app/NSStringEmojize"; 414 | FRAMEWORK_SEARCH_PATHS = ( 415 | "\"$(SDKROOT)/Developer/Library/Frameworks\"", 416 | "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", 417 | ); 418 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 419 | GCC_PREFIX_HEADER = "NSStringEmojize/NSStringEmojize-Prefix.pch"; 420 | INFOPLIST_FILE = "NSStringEmojizeTests/NSStringEmojizeTests-Info.plist"; 421 | PRODUCT_NAME = "$(TARGET_NAME)"; 422 | TEST_HOST = "$(BUNDLE_LOADER)"; 423 | WRAPPER_EXTENSION = octest; 424 | }; 425 | name = Debug; 426 | }; 427 | DEC76A1C16B9AE7600764C30 /* Release */ = { 428 | isa = XCBuildConfiguration; 429 | buildSettings = { 430 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/NSStringEmojize.app/NSStringEmojize"; 431 | FRAMEWORK_SEARCH_PATHS = ( 432 | "\"$(SDKROOT)/Developer/Library/Frameworks\"", 433 | "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", 434 | ); 435 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 436 | GCC_PREFIX_HEADER = "NSStringEmojize/NSStringEmojize-Prefix.pch"; 437 | INFOPLIST_FILE = "NSStringEmojizeTests/NSStringEmojizeTests-Info.plist"; 438 | PRODUCT_NAME = "$(TARGET_NAME)"; 439 | TEST_HOST = "$(BUNDLE_LOADER)"; 440 | WRAPPER_EXTENSION = octest; 441 | }; 442 | name = Release; 443 | }; 444 | /* End XCBuildConfiguration section */ 445 | 446 | /* Begin XCConfigurationList section */ 447 | DEC769E016B9AE7600764C30 /* Build configuration list for PBXProject "NSStringEmojize" */ = { 448 | isa = XCConfigurationList; 449 | buildConfigurations = ( 450 | DEC76A1516B9AE7600764C30 /* Debug */, 451 | DEC76A1616B9AE7600764C30 /* Release */, 452 | ); 453 | defaultConfigurationIsVisible = 0; 454 | defaultConfigurationName = Release; 455 | }; 456 | DEC76A1716B9AE7600764C30 /* Build configuration list for PBXNativeTarget "NSStringEmojize" */ = { 457 | isa = XCConfigurationList; 458 | buildConfigurations = ( 459 | DEC76A1816B9AE7600764C30 /* Debug */, 460 | DEC76A1916B9AE7600764C30 /* Release */, 461 | ); 462 | defaultConfigurationIsVisible = 0; 463 | defaultConfigurationName = Release; 464 | }; 465 | DEC76A1A16B9AE7600764C30 /* Build configuration list for PBXNativeTarget "NSStringEmojizeTests" */ = { 466 | isa = XCConfigurationList; 467 | buildConfigurations = ( 468 | DEC76A1B16B9AE7600764C30 /* Debug */, 469 | DEC76A1C16B9AE7600764C30 /* Release */, 470 | ); 471 | defaultConfigurationIsVisible = 0; 472 | defaultConfigurationName = Release; 473 | }; 474 | /* End XCConfigurationList section */ 475 | }; 476 | rootObject = DEC769DD16B9AE7500764C30 /* Project object */; 477 | } 478 | -------------------------------------------------------------------------------- /Example/NSStringEmojize.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/NSStringEmojize/DIYAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // DIYAppDelegate.h 3 | // NSStringEmojize 4 | // 5 | // Created by Jonathan Beilin on 1/30/13. 6 | // Copyright (c) 2013 DIY. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DIYAppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Example/NSStringEmojize/DIYAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // DIYAppDelegate.m 3 | // NSStringEmojize 4 | // 5 | // Created by Jonathan Beilin on 1/30/13. 6 | // Copyright (c) 2013 DIY. All rights reserved. 7 | // 8 | 9 | #import "DIYAppDelegate.h" 10 | #import "DIYViewController.h" 11 | 12 | @implementation DIYAppDelegate 13 | 14 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 15 | { 16 | self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 17 | // Override point for customization after application launch. 18 | self.window.backgroundColor = [UIColor whiteColor]; 19 | [self.window makeKeyAndVisible]; 20 | 21 | DIYViewController *vc = [[DIYViewController alloc] init]; 22 | self.window.rootViewController = vc; 23 | 24 | return YES; 25 | } 26 | 27 | - (void)applicationWillResignActive:(UIApplication *)application 28 | { 29 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 30 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 31 | } 32 | 33 | - (void)applicationDidEnterBackground:(UIApplication *)application 34 | { 35 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 36 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 37 | } 38 | 39 | - (void)applicationWillEnterForeground:(UIApplication *)application 40 | { 41 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 42 | } 43 | 44 | - (void)applicationDidBecomeActive:(UIApplication *)application 45 | { 46 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 47 | } 48 | 49 | - (void)applicationWillTerminate:(UIApplication *)application 50 | { 51 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 52 | } 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /Example/NSStringEmojize/DIYViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DIYViewController.h 3 | // NSStringEmojize 4 | // 5 | // Created by Jonathan Beilin on 1/30/13. 6 | // Copyright (c) 2013 DIY. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DIYViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/NSStringEmojize/DIYViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // DIYViewController.m 3 | // NSStringEmojize 4 | // 5 | // Created by Jonathan Beilin on 1/30/13. 6 | // Copyright (c) 2013 DIY. All rights reserved. 7 | // 8 | 9 | #import "DIYViewController.h" 10 | #import "NSString+Emojize.h" 11 | 12 | @implementation DIYViewController 13 | 14 | - (void)viewDidLoad 15 | { 16 | [super viewDidLoad]; 17 | 18 | NSString *emojiString = @":+1: :-1: :100: :1234: :8ball: :a: :ab: :abc: :abcd: :accept: :aerial_tramway: :airplane: :alarm_clock: :alien: :ambulance: :anchor: :angel: :anger: :angry: :anguished: :ant: :apple: :aquarius: :aries: :arrow_backward: :arrow_double_down: :arrow_double_up: :arrow_down: :arrow_down_small: :arrow_forward: :arrow_heading_down: :arrow_heading_up: :arrow_left: :arrow_lower_left: :arrow_lower_right: :arrow_right: :arrow_right_hook: :arrow_up: :arrow_up_down: :arrow_up_small: :arrow_upper_left: :arrow_upper_right: :arrows_clockwise: :arrows_counterclockwise: :art: :articulated_lorry: :astonished: :athletic_shoe: :atm: :b: :baby: :baby_bottle: :baby_chick: :baby_symbol: :back: :baggage_claim: :balloon: :ballot_box_with_check: :bamboo: :banana: :bangbang: :bank: :bar_chart: :barber: :baseball: :basketball: :bath: :bathtub: :battery: :bear: :bee: :beer: :beers: :beetle: :beginner: :bell: :bento: :bicyclist: :bike: :bikini: :bird: :birthday: :black_circle: :black_joker: :black_large_square: :black_medium_small_square: :black_medium_square: :black_nib: :black_small_square: :black_square_button: :blossom: :blowfish: :blue_book: :blue_car: :blue_heart: :blush: :boar: :boat: :bomb: :book: :bookmark: :bookmark_tabs: :books: :boom: :boot: :bouquet: :bow: :bowling: :boy: :bread: :bride_with_veil: :bridge_at_night: :briefcase: :broken_heart: :bug: :bulb: :bullettrain_front: :bullettrain_side: :bus: :busstop: :bust_in_silhouette: :busts_in_silhouette: :cactus: :cake: :calendar: :calling: :camel: :camera: :cancer: :candy: :capital_abcd: :capricorn: :car: :card_index: :carousel_horse: :cat: :cat2: :cd: :chart: :chart_with_downwards_trend: :chart_with_upwards_trend: :checkered_flag: :cherries: :cherry_blossom: :chestnut: :chicken: :children_crossing: :chocolate_bar: :christmas_tree: :church: :cinema: :circus_tent: :city_sunrise: :city_sunset: :cl: :clap: :clapper: :clipboard: :clock1: :clock10: :clock1030: :clock11: :clock1130: :clock12: :clock1230: :clock130: :clock2: :clock230: :clock3: :clock330: :clock4: :clock430: :clock5: :clock530: :clock6: :clock630: :clock7: :clock730: :clock8: :clock830: :clock9: :clock930: :closed_book: :closed_lock_with_key: :closed_umbrella: :cloud: :clubs: :cocktail: :coffee: :cold_sweat: :collision: :computer: :confetti_ball: :confounded: :confused: :congratulations: :construction: :construction_worker: :convenience_store: :cookie: :cool: :cop: :copyright: :corn: :couple: :couple_with_heart: :couplekiss: :cow: :cow2: :credit_card: :crescent_moon: :crocodile: :crossed_flags: :crown: :cry: :crying_cat_face: :crystal_ball: :cupid: :curly_loop: :currency_exchange: :curry: :custard: :customs: :cyclone: :dancer: :dancers: :dango: :dart: :dash: :date: :deciduous_tree: :department_store: :diamond_shape_with_a_dot_inside: :diamonds: :disappointed: :disappointed_relieved: :dizzy: :dizzy_face: :do_not_litter: :dog: :dog2: :dollar: :dolls: :dolphin: :door: :doughnut: :dragon: :dragon_face: :dress: :dromedary_camel: :droplet: :dvd: :e-mail: :ear: :ear_of_rice: :earth_africa: :earth_americas: :earth_asia: :egg: :eggplant: :eight_pointed_black_star: :eight_spoked_asterisk: :electric_plug: :elephant: :email: :end: :envelope: :envelope_with_arrow: :euro: :european_castle: :european_post_office: :evergreen_tree: :exclamation: :expressionless: :eyeglasses: :eyes: :facepunch: :factory: :fallen_leaf: :family: :fast_forward: :fax: :fearful: :feet: :ferris_wheel: :file_folder: :fire: :fire_engine: :fireworks: :first_quarter_moon: :first_quarter_moon_with_face: :fish: :fish_cake: :fishing_pole_and_fish: :fist: :flags: :flashlight: :flipper: :floppy_disk: :flower_playing_cards: :flushed: :foggy: :football: :footprints: :fork_and_knife: :fountain: :four_leaf_clover: :free: :fried_shrimp: :fries: :frog: :frowning: :fuelpump: :full_moon: :full_moon_with_face: :game_die: :gem: :gemini: :ghost: :gift: :gift_heart: :girl: :globe_with_meridians: :goat: :golf: :grapes: :green_apple: :green_book: :green_heart: :grey_exclamation: :grey_question: :grimacing: :grin: :grinning: :guardsman: :guitar: :gun: :haircut: :hamburger: :hammer: :hamster: :hand: :handbag: :hankey: :hatched_chick: :hatching_chick: :headphones: :hear_no_evil: :heart: :heart_decoration: :heart_eyes: :heart_eyes_cat: :heartbeat: :heartpulse: :hearts: :heavy_check_mark: :heavy_division_sign: :heavy_dollar_sign: :heavy_exclamation_mark: :heavy_minus_sign: :heavy_multiplication_x: :heavy_plus_sign: :helicopter: :herb: :hibiscus: :high_brightness: :high_heel: :hocho: :honey_pot: :honeybee: :horse: :horse_racing: :hospital: :hotel: :hotsprings: :hourglass: :hourglass_flowing_sand: :house: :house_with_garden: :hushed: :ice_cream: :icecream: :id: :ideograph_advantage: :imp: :inbox_tray: :incoming_envelope: :information_desk_person: :information_source: :innocent: :interrobang: :iphone: :izakaya_lantern: :jack_o_lantern: :japan: :japanese_castle: :japanese_goblin: :japanese_ogre: :jeans: :joy: :joy_cat: :key: :keycap_ten: :kimono: :kiss: :kissing: :kissing_cat: :kissing_closed_eyes: :kissing_heart: :kissing_smiling_eyes: :koala: :koko: :lantern: :large_blue_circle: :large_blue_diamond: :large_orange_diamond: :last_quarter_moon: :last_quarter_moon_with_face: :laughing: :leaves: :ledger: :left_luggage: :left_right_arrow: :leftwards_arrow_with_hook: :lemon: :leo: :leopard: :libra: :light_rail: :link: :lips: :lipstick: :lock: :lock_with_ink_pen: :lollipop: :loop: :loudspeaker: :love_hotel: :love_letter: :low_brightness: :m: :mag: :mag_right: :mahjong: :mailbox: :mailbox_closed: :mailbox_with_mail: :mailbox_with_no_mail: :man: :man_with_gua_pi_mao: :man_with_turban: :mans_shoe: :maple_leaf: :mask: :massage: :meat_on_bone: :mega: :melon: :memo: :mens: :metro: :microphone: :microscope: :milky_way: :minibus: :minidisc: :mobile_phone_off: :money_with_wings: :moneybag: :monkey: :monkey_face: :monorail: :moon: :mortar_board: :mount_fuji: :mountain_bicyclist: :mountain_cableway: :mountain_railway: :mouse: :mouse2: :movie_camera: :moyai: :muscle: :mushroom: :musical_keyboard: :musical_note: :musical_score: :mute: :nail_care: :name_badge: :necktie: :negative_squared_cross_mark: :neutral_face: :new: :new_moon: :new_moon_with_face: :newspaper: :ng: :no_bell: :no_bicycles: :no_entry: :no_entry_sign: :no_good: :no_mobile_phones: :no_mouth: :no_pedestrians: :no_smoking: :non-potable_water: :nose: :notebook: :notebook_with_decorative_cover: :notes: :nut_and_bolt: :o: :o2: :ocean: :octopus: :oden: :office: :ok: :ok_hand: :ok_woman: :older_man: :older_woman: :on: :oncoming_automobile: :oncoming_bus: :oncoming_police_car: :oncoming_taxi: :open_book: :open_file_folder: :open_hands: :open_mouth: :ophiuchus: :orange_book: :outbox_tray: :ox: :package: :page_facing_up: :page_with_curl: :pager: :palm_tree: :panda_face: :paperclip: :parking: :part_alternation_mark: :partly_sunny: :passport_control: :paw_prints: :peach: :pear: :pencil: :pencil2: :penguin: :pensive: :performing_arts: :persevere: :person_frowning: :person_with_blond_hair: :person_with_pouting_face: :phone: :pig: :pig2: :pig_nose: :pill: :pineapple: :pisces: :pizza: :point_down: :point_left: :point_right: :point_up: :point_up_2: :police_car: :poodle: :poop: :post_office: :postal_horn: :postbox: :potable_water: :pouch: :poultry_leg: :pound: :pouting_cat: :pray: :princess: :punch: :purple_heart: :purse: :pushpin: :put_litter_in_its_place: :question: :rabbit: :rabbit2: :racehorse: :radio: :radio_button: :rage: :railway_car: :rainbow: :raised_hand: :raised_hands: :raising_hand: :ram: :ramen: :rat: :recycle: :red_car: :red_circle: :registered: :relaxed: :relieved: :repeat: :repeat_one: :restroom: :revolving_hearts: :rewind: :ribbon: :rice: :rice_ball: :rice_cracker: :rice_scene: :ring: :rocket: :roller_coaster: :rooster: :rose: :rotating_light: :round_pushpin: :rowboat: :rugby_football: :runner: :running: :running_shirt_with_sash: :sa: :sagittarius: :sailboat: :sake: :sandal: :santa: :satellite: :satisfied: :saxophone: :school: :school_satchel: :scissors: :scorpius: :scream: :scream_cat: :scroll: :seat: :secret: :see_no_evil: :seedling: :shaved_ice: :sheep: :shell: :ship: :shirt: :shit: :shoe: :shower: :signal_strength: :six_pointed_star: :ski: :skull: :sleeping: :sleepy: :slot_machine: :small_blue_diamond: :small_orange_diamond: :small_red_triangle: :small_red_triangle_down: :smile: :smile_cat: :smiley: :smiley_cat: :smiling_imp: :smirk: :smirk_cat: :smoking: :snail: :snake: :snowboarder: :snowflake: :snowman: :sob: :soccer: :soon: :sos: :sound: :space_invader: :spades: :spaghetti: :sparkle: :sparkler: :sparkles: :sparkling_heart: :speak_no_evil: :speaker: :speech_balloon: :speedboat: :star: :star2: :stars: :station: :statue_of_liberty: :steam_locomotive: :stew: :straight_ruler: :strawberry: :stuck_out_tongue: :stuck_out_tongue_closed_eyes: :stuck_out_tongue_winking_eye: :sun_with_face: :sunflower: :sunglasses: :sunny: :sunrise: :sunrise_over_mountains: :surfer: :sushi: :suspension_railway: :sweat: :sweat_drops: :sweat_smile: :sweet_potato: :swimmer: :symbols: :syringe: :tada: :tanabata_tree: :tangerine: :taurus: :taxi: :tea: :telephone: :telephone_receiver: :telescope: :tennis: :tent: :thought_balloon: :thumbsdown: :thumbsup: :ticket: :tiger: :tiger2: :tired_face: :tm: :toilet: :tokyo_tower: :tomato: :tongue: :top: :tophat: :tractor: :traffic_light: :train: :train2: :tram: :triangular_flag_on_post: :triangular_ruler: :trident: :triumph: :trolleybus: :trophy: :tropical_drink: :tropical_fish: :truck: :trumpet: :tshirt: :tulip: :turtle: :tv: :twisted_rightwards_arrows: :two_hearts: :two_men_holding_hands: :two_women_holding_hands: :u5272: :u5408: :u55b6: :u6307: :u6708: :u6709: :u6e80: :u7121: :u7533: :u7981: :u7a7a: :umbrella: :unamused: :underage: :unlock: :up: :v: :vertical_traffic_light: :vhs: :vibration_mode: :video_camera: :video_game: :violin: :virgo: :volcano: :vs: :walking: :waning_crescent_moon: :waning_gibbous_moon: :warning: :watch: :water_buffalo: :watermelon: :wave: :wavy_dash: :waxing_crescent_moon: :waxing_gibbous_moon: :wc: :weary: :wedding: :whale: :whale2: :wheelchair: :white_check_mark: :white_circle: :white_flower: :white_large_square: :white_medium_small_square: :white_medium_square: :white_small_square: :white_square_button: :wind_chime: :wine_glass: :wink: :wolf: :woman: :womans_clothes: :womans_hat: :womens: :worried: :wrench: :x: :yellow_heart: :yen: :yum: :zap: :zzz:"; 19 | UITextView *emojiView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; 20 | emojiView.text = [emojiString emojizedString]; 21 | emojiView.font = [UIFont systemFontOfSize:36.0f]; 22 | emojiView.editable = NO; 23 | 24 | [self.view addSubview:emojiView]; 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Example/NSStringEmojize/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diy/NSStringEmojize/00d954ea1e161b5040929a6ef56b53e2cbd08586/Example/NSStringEmojize/Default-568h@2x.png -------------------------------------------------------------------------------- /Example/NSStringEmojize/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diy/NSStringEmojize/00d954ea1e161b5040929a6ef56b53e2cbd08586/Example/NSStringEmojize/Default.png -------------------------------------------------------------------------------- /Example/NSStringEmojize/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diy/NSStringEmojize/00d954ea1e161b5040929a6ef56b53e2cbd08586/Example/NSStringEmojize/Default@2x.png -------------------------------------------------------------------------------- /Example/NSStringEmojize/NSStringEmojize-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | DIY.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSRequiresIPhoneOS 26 | 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Example/NSStringEmojize/NSStringEmojize-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'NSStringEmojize' target in the 'NSStringEmojize' project 3 | // 4 | 5 | #import 6 | 7 | #ifndef __IPHONE_3_0 8 | #warning "This project uses features only available in iOS SDK 3.0 and later." 9 | #endif 10 | 11 | #ifdef __OBJC__ 12 | #import 13 | #import 14 | #endif 15 | -------------------------------------------------------------------------------- /Example/NSStringEmojize/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Example/NSStringEmojize/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // NSStringEmojize 4 | // 5 | // Created by Jonathan Beilin on 1/30/13. 6 | // Copyright (c) 2013 DIY. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "DIYAppDelegate.h" 12 | 13 | int main(int argc, char *argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([DIYAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Example/NSStringEmojizeTests/NSStringEmojizeTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | DIY.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Example/NSStringEmojizeTests/NSStringEmojizeTests.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSStringEmojizeTests.h 3 | // NSStringEmojizeTests 4 | // 5 | // Created by Jonathan Beilin on 1/30/13. 6 | // Copyright (c) 2013 DIY. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSStringEmojizeTests : SenTestCase 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/NSStringEmojizeTests/NSStringEmojizeTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSStringEmojizeTests.m 3 | // NSStringEmojizeTests 4 | // 5 | // Created by Jonathan Beilin on 1/30/13. 6 | // Copyright (c) 2013 DIY. All rights reserved. 7 | // 8 | 9 | #import "NSStringEmojizeTests.h" 10 | 11 | #import "NSString+Emojize.h" 12 | 13 | @implementation NSStringEmojizeTests 14 | 15 | - (void)testFound 16 | { 17 | NSString *emojiString = @"This comment has an emoji :mushroom:"; 18 | STAssertTrue([[emojiString emojizedString] rangeOfString:@"\U0001F344"].location != NSNotFound, nil); 19 | } 20 | 21 | - (void)testNotFound 22 | { 23 | NSString *emojiString = @"This comment has an emoji :qwertyasdf:"; 24 | STAssertTrue([[emojiString emojizedString] rangeOfString:@"\U0001F344"].location == NSNotFound, nil); 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Example/NSStringEmojizeTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2012 DIY, Co. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. -------------------------------------------------------------------------------- /NSStringEmojize.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'NSStringEmojize' 3 | s.version = '0.2.0' 4 | s.license = 'Apache 2.0' 5 | s.summary = 'A category on NSString to turn codes from Emoji Cheat Sheet (http://www.emoji-cheat-sheet.com/) into Unicode emoji characters.' 6 | s.homepage = 'https://github.com/diy/nsstringemojize' 7 | s.authors = {'Jon Beilin' => 'jon@diy.org'} 8 | s.source = { :git => 'https://github.com/diy/NSStringEmojize.git', :tag => 'v0.2.0' } 9 | s.platform = :ios 10 | s.source_files = 'NSStringEmojize' 11 | s.requires_arc = true 12 | 13 | s.framework = 'UIKit' 14 | end 15 | -------------------------------------------------------------------------------- /NSStringEmojize/NSString+Emojize.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Emojize.h 3 | // Field Recorder 4 | // 5 | // Created by Jonathan Beilin on 11/5/12. 6 | // Copyright (c) 2014 DIY. All rights reserved. 7 | // 8 | // Inspired by https://github.com/larsschwegmann/Emoticonizer 9 | 10 | #import 11 | 12 | @interface NSString (Emojize) 13 | 14 | - (NSString *)emojizedString; 15 | + (NSString *)emojizedStringWithString:(NSString *)text; 16 | + (NSDictionary *)emojiAliases; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /NSStringEmojize/NSString+Emojize.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Emojize.m 3 | // Field Recorder 4 | // 5 | // Created by Jonathan Beilin on 11/5/12. 6 | // Copyright (c) 2014 DIY. All rights reserved. 7 | // 8 | 9 | #import "NSString+Emojize.h" 10 | #import "emojis.h" 11 | 12 | @implementation NSString (Emojize) 13 | 14 | - (NSString *)emojizedString 15 | { 16 | return [NSString emojizedStringWithString:self]; 17 | } 18 | 19 | + (NSString *)emojizedStringWithString:(NSString *)text 20 | { 21 | static dispatch_once_t onceToken; 22 | static NSRegularExpression *regex = nil; 23 | dispatch_once(&onceToken, ^{ 24 | regex = [[NSRegularExpression alloc] initWithPattern:@"(:[a-z0-9-+_]+:)" options:NSRegularExpressionCaseInsensitive error:NULL]; 25 | }); 26 | 27 | __block NSString *resultText = text; 28 | NSRange matchingRange = NSMakeRange(0, [resultText length]); 29 | [regex enumerateMatchesInString:resultText options:NSMatchingReportCompletion range:matchingRange usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) { 30 | if (result && ([result resultType] == NSTextCheckingTypeRegularExpression) && !(flags & NSMatchingInternalError)) { 31 | NSRange range = result.range; 32 | if (range.location != NSNotFound) { 33 | NSString *code = [text substringWithRange:range]; 34 | NSString *unicode = self.emojiAliases[code]; 35 | if (unicode) { 36 | resultText = [resultText stringByReplacingOccurrencesOfString:code withString:unicode]; 37 | } 38 | } 39 | } 40 | }]; 41 | 42 | return resultText; 43 | } 44 | 45 | + (NSDictionary *)emojiAliases { 46 | static NSDictionary *_emojiAliases; 47 | static dispatch_once_t onceToken; 48 | dispatch_once(&onceToken, ^{ 49 | _emojiAliases = EMOJI_HASH; 50 | }); 51 | return _emojiAliases; 52 | } 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /NSStringEmojize/emojis.h: -------------------------------------------------------------------------------- 1 | // 2 | // emojis.h 3 | // NSStringEmojize 4 | // 5 | // Created by Andrew Sliwinski on 1/6/14. 6 | // Copyright (c) 2014 DIY. All rights reserved. 7 | // 8 | 9 | #define EMOJI_HASH @{ \ 10 | @":+1:" : @"\U0001F44D", \ 11 | @":-1:" : @"\U0001F44E", \ 12 | @":100:" : @"\U0001F4AF", \ 13 | @":1234:" : @"\U0001F522", \ 14 | @":8ball:" : @"\U0001F3B1", \ 15 | @":a:" : @"\U0001F170", \ 16 | @":ab:" : @"\U0001F18E", \ 17 | @":abc:" : @"\U0001F524", \ 18 | @":abcd:" : @"\U0001F521", \ 19 | @":accept:" : @"\U0001F251", \ 20 | @":aerial_tramway:" : @"\U0001F6A1", \ 21 | @":airplane:" : @"\U00002708", \ 22 | @":alarm_clock:" : @"\U000023F0", \ 23 | @":alien:" : @"\U0001F47D", \ 24 | @":ambulance:" : @"\U0001F691", \ 25 | @":anchor:" : @"\U00002693", \ 26 | @":angel:" : @"\U0001F47C", \ 27 | @":anger:" : @"\U0001F4A2", \ 28 | @":angry:" : @"\U0001F620", \ 29 | @":anguished:" : @"\U0001F627", \ 30 | @":ant:" : @"\U0001F41C", \ 31 | @":apple:" : @"\U0001F34E", \ 32 | @":aquarius:" : @"\U00002652", \ 33 | @":aries:" : @"\U00002648", \ 34 | @":arrow_backward:" : @"\U000025C0", \ 35 | @":arrow_double_down:" : @"\U000023EC", \ 36 | @":arrow_double_up:" : @"\U000023EB", \ 37 | @":arrow_down:" : @"\U00002B07", \ 38 | @":arrow_down_small:" : @"\U0001F53D", \ 39 | @":arrow_forward:" : @"\U000025B6", \ 40 | @":arrow_heading_down:" : @"\U00002935", \ 41 | @":arrow_heading_up:" : @"\U00002934", \ 42 | @":arrow_left:" : @"\U00002B05", \ 43 | @":arrow_lower_left:" : @"\U00002199", \ 44 | @":arrow_lower_right:" : @"\U00002198", \ 45 | @":arrow_right:" : @"\U000027A1", \ 46 | @":arrow_right_hook:" : @"\U000021AA", \ 47 | @":arrow_up:" : @"\U00002B06", \ 48 | @":arrow_up_down:" : @"\U00002195", \ 49 | @":arrow_up_small:" : @"\U0001F53C", \ 50 | @":arrow_upper_left:" : @"\U00002196", \ 51 | @":arrow_upper_right:" : @"\U00002197", \ 52 | @":arrows_clockwise:" : @"\U0001F503", \ 53 | @":arrows_counterclockwise:" : @"\U0001F504", \ 54 | @":art:" : @"\U0001F3A8", \ 55 | @":articulated_lorry:" : @"\U0001F69B", \ 56 | @":astonished:" : @"\U0001F632", \ 57 | @":athletic_shoe:" : @"\U0001F45F", \ 58 | @":atm:" : @"\U0001F3E7", \ 59 | @":b:" : @"\U0001F171", \ 60 | @":baby:" : @"\U0001F476", \ 61 | @":baby_bottle:" : @"\U0001F37C", \ 62 | @":baby_chick:" : @"\U0001F424", \ 63 | @":baby_symbol:" : @"\U0001F6BC", \ 64 | @":back:" : @"\U0001F519", \ 65 | @":baggage_claim:" : @"\U0001F6C4", \ 66 | @":balloon:" : @"\U0001F388", \ 67 | @":ballot_box_with_check:" : @"\U00002611", \ 68 | @":bamboo:" : @"\U0001F38D", \ 69 | @":banana:" : @"\U0001F34C", \ 70 | @":bangbang:" : @"\U0000203C", \ 71 | @":bank:" : @"\U0001F3E6", \ 72 | @":bar_chart:" : @"\U0001F4CA", \ 73 | @":barber:" : @"\U0001F488", \ 74 | @":baseball:" : @"\U000026BE", \ 75 | @":basketball:" : @"\U0001F3C0", \ 76 | @":bath:" : @"\U0001F6C0", \ 77 | @":bathtub:" : @"\U0001F6C1", \ 78 | @":battery:" : @"\U0001F50B", \ 79 | @":bear:" : @"\U0001F43B", \ 80 | @":bee:" : @"\U0001F41D", \ 81 | @":beer:" : @"\U0001F37A", \ 82 | @":beers:" : @"\U0001F37B", \ 83 | @":beetle:" : @"\U0001F41E", \ 84 | @":beginner:" : @"\U0001F530", \ 85 | @":bell:" : @"\U0001F514", \ 86 | @":bento:" : @"\U0001F371", \ 87 | @":bicyclist:" : @"\U0001F6B4", \ 88 | @":bike:" : @"\U0001F6B2", \ 89 | @":bikini:" : @"\U0001F459", \ 90 | @":bird:" : @"\U0001F426", \ 91 | @":birthday:" : @"\U0001F382", \ 92 | @":black_circle:" : @"\U000026AB", \ 93 | @":black_joker:" : @"\U0001F0CF", \ 94 | @":black_large_square:" : @"\U00002B1B", \ 95 | @":black_medium_small_square:" : @"\U000025FE", \ 96 | @":black_medium_square:" : @"\U000025FC", \ 97 | @":black_nib:" : @"\U00002712", \ 98 | @":black_small_square:" : @"\U000025AA", \ 99 | @":black_square_button:" : @"\U0001F532", \ 100 | @":blossom:" : @"\U0001F33C", \ 101 | @":blowfish:" : @"\U0001F421", \ 102 | @":blue_book:" : @"\U0001F4D8", \ 103 | @":blue_car:" : @"\U0001F699", \ 104 | @":blue_heart:" : @"\U0001F499", \ 105 | @":blush:" : @"\U0001F60A", \ 106 | @":boar:" : @"\U0001F417", \ 107 | @":boat:" : @"\U000026F5", \ 108 | @":bomb:" : @"\U0001F4A3", \ 109 | @":book:" : @"\U0001F4D6", \ 110 | @":bookmark:" : @"\U0001F516", \ 111 | @":bookmark_tabs:" : @"\U0001F4D1", \ 112 | @":books:" : @"\U0001F4DA", \ 113 | @":boom:" : @"\U0001F4A5", \ 114 | @":boot:" : @"\U0001F462", \ 115 | @":bouquet:" : @"\U0001F490", \ 116 | @":bow:" : @"\U0001F647", \ 117 | @":bowling:" : @"\U0001F3B3", \ 118 | @":boy:" : @"\U0001F466", \ 119 | @":bread:" : @"\U0001F35E", \ 120 | @":bride_with_veil:" : @"\U0001F470", \ 121 | @":bridge_at_night:" : @"\U0001F309", \ 122 | @":briefcase:" : @"\U0001F4BC", \ 123 | @":broken_heart:" : @"\U0001F494", \ 124 | @":bug:" : @"\U0001F41B", \ 125 | @":bulb:" : @"\U0001F4A1", \ 126 | @":bullettrain_front:" : @"\U0001F685", \ 127 | @":bullettrain_side:" : @"\U0001F684", \ 128 | @":bus:" : @"\U0001F68C", \ 129 | @":busstop:" : @"\U0001F68F", \ 130 | @":bust_in_silhouette:" : @"\U0001F464", \ 131 | @":busts_in_silhouette:" : @"\U0001F465", \ 132 | @":cactus:" : @"\U0001F335", \ 133 | @":cake:" : @"\U0001F370", \ 134 | @":calendar:" : @"\U0001F4C6", \ 135 | @":calling:" : @"\U0001F4F2", \ 136 | @":camel:" : @"\U0001F42B", \ 137 | @":camera:" : @"\U0001F4F7", \ 138 | @":cancer:" : @"\U0000264B", \ 139 | @":candy:" : @"\U0001F36C", \ 140 | @":capital_abcd:" : @"\U0001F520", \ 141 | @":capricorn:" : @"\U00002651", \ 142 | @":car:" : @"\U0001F697", \ 143 | @":card_index:" : @"\U0001F4C7", \ 144 | @":carousel_horse:" : @"\U0001F3A0", \ 145 | @":cat:" : @"\U0001F431", \ 146 | @":cat2:" : @"\U0001F408", \ 147 | @":cd:" : @"\U0001F4BF", \ 148 | @":chart:" : @"\U0001F4B9", \ 149 | @":chart_with_downwards_trend:" : @"\U0001F4C9", \ 150 | @":chart_with_upwards_trend:" : @"\U0001F4C8", \ 151 | @":checkered_flag:" : @"\U0001F3C1", \ 152 | @":cherries:" : @"\U0001F352", \ 153 | @":cherry_blossom:" : @"\U0001F338", \ 154 | @":chestnut:" : @"\U0001F330", \ 155 | @":chicken:" : @"\U0001F414", \ 156 | @":children_crossing:" : @"\U0001F6B8", \ 157 | @":chocolate_bar:" : @"\U0001F36B", \ 158 | @":christmas_tree:" : @"\U0001F384", \ 159 | @":church:" : @"\U000026EA", \ 160 | @":cinema:" : @"\U0001F3A6", \ 161 | @":circus_tent:" : @"\U0001F3AA", \ 162 | @":city_sunrise:" : @"\U0001F307", \ 163 | @":city_sunset:" : @"\U0001F306", \ 164 | @":cl:" : @"\U0001F191", \ 165 | @":clap:" : @"\U0001F44F", \ 166 | @":clapper:" : @"\U0001F3AC", \ 167 | @":clipboard:" : @"\U0001F4CB", \ 168 | @":clock1:" : @"\U0001F550", \ 169 | @":clock10:" : @"\U0001F559", \ 170 | @":clock1030:" : @"\U0001F565", \ 171 | @":clock11:" : @"\U0001F55A", \ 172 | @":clock1130:" : @"\U0001F566", \ 173 | @":clock12:" : @"\U0001F55B", \ 174 | @":clock1230:" : @"\U0001F567", \ 175 | @":clock130:" : @"\U0001F55C", \ 176 | @":clock2:" : @"\U0001F551", \ 177 | @":clock230:" : @"\U0001F55D", \ 178 | @":clock3:" : @"\U0001F552", \ 179 | @":clock330:" : @"\U0001F55E", \ 180 | @":clock4:" : @"\U0001F553", \ 181 | @":clock430:" : @"\U0001F55F", \ 182 | @":clock5:" : @"\U0001F554", \ 183 | @":clock530:" : @"\U0001F560", \ 184 | @":clock6:" : @"\U0001F555", \ 185 | @":clock630:" : @"\U0001F561", \ 186 | @":clock7:" : @"\U0001F556", \ 187 | @":clock730:" : @"\U0001F562", \ 188 | @":clock8:" : @"\U0001F557", \ 189 | @":clock830:" : @"\U0001F563", \ 190 | @":clock9:" : @"\U0001F558", \ 191 | @":clock930:" : @"\U0001F564", \ 192 | @":closed_book:" : @"\U0001F4D5", \ 193 | @":closed_lock_with_key:" : @"\U0001F510", \ 194 | @":closed_umbrella:" : @"\U0001F302", \ 195 | @":cloud:" : @"\U00002601", \ 196 | @":clubs:" : @"\U00002663", \ 197 | @":cocktail:" : @"\U0001F378", \ 198 | @":coffee:" : @"\U00002615", \ 199 | @":cold_sweat:" : @"\U0001F630", \ 200 | @":collision:" : @"\U0001F4A5", \ 201 | @":computer:" : @"\U0001F4BB", \ 202 | @":confetti_ball:" : @"\U0001F38A", \ 203 | @":confounded:" : @"\U0001F616", \ 204 | @":confused:" : @"\U0001F615", \ 205 | @":congratulations:" : @"\U00003297", \ 206 | @":construction:" : @"\U0001F6A7", \ 207 | @":construction_worker:" : @"\U0001F477", \ 208 | @":convenience_store:" : @"\U0001F3EA", \ 209 | @":cookie:" : @"\U0001F36A", \ 210 | @":cool:" : @"\U0001F192", \ 211 | @":cop:" : @"\U0001F46E", \ 212 | @":copyright:" : @"\U000000A9", \ 213 | @":corn:" : @"\U0001F33D", \ 214 | @":couple:" : @"\U0001F46B", \ 215 | @":couple_with_heart:" : @"\U0001F491", \ 216 | @":couplekiss:" : @"\U0001F48F", \ 217 | @":cow:" : @"\U0001F42E", \ 218 | @":cow2:" : @"\U0001F404", \ 219 | @":credit_card:" : @"\U0001F4B3", \ 220 | @":crescent_moon:" : @"\U0001F319", \ 221 | @":crocodile:" : @"\U0001F40A", \ 222 | @":crossed_flags:" : @"\U0001F38C", \ 223 | @":crown:" : @"\U0001F451", \ 224 | @":cry:" : @"\U0001F622", \ 225 | @":crying_cat_face:" : @"\U0001F63F", \ 226 | @":crystal_ball:" : @"\U0001F52E", \ 227 | @":cupid:" : @"\U0001F498", \ 228 | @":curly_loop:" : @"\U000027B0", \ 229 | @":currency_exchange:" : @"\U0001F4B1", \ 230 | @":curry:" : @"\U0001F35B", \ 231 | @":custard:" : @"\U0001F36E", \ 232 | @":customs:" : @"\U0001F6C3", \ 233 | @":cyclone:" : @"\U0001F300", \ 234 | @":dancer:" : @"\U0001F483", \ 235 | @":dancers:" : @"\U0001F46F", \ 236 | @":dango:" : @"\U0001F361", \ 237 | @":dart:" : @"\U0001F3AF", \ 238 | @":dash:" : @"\U0001F4A8", \ 239 | @":date:" : @"\U0001F4C5", \ 240 | @":deciduous_tree:" : @"\U0001F333", \ 241 | @":department_store:" : @"\U0001F3EC", \ 242 | @":diamond_shape_with_a_dot_inside:" : @"\U0001F4A0", \ 243 | @":diamonds:" : @"\U00002666", \ 244 | @":disappointed:" : @"\U0001F61E", \ 245 | @":disappointed_relieved:" : @"\U0001F625", \ 246 | @":dizzy:" : @"\U0001F4AB", \ 247 | @":dizzy_face:" : @"\U0001F635", \ 248 | @":do_not_litter:" : @"\U0001F6AF", \ 249 | @":dog:" : @"\U0001F436", \ 250 | @":dog2:" : @"\U0001F415", \ 251 | @":dollar:" : @"\U0001F4B5", \ 252 | @":dolls:" : @"\U0001F38E", \ 253 | @":dolphin:" : @"\U0001F42C", \ 254 | @":door:" : @"\U0001F6AA", \ 255 | @":doughnut:" : @"\U0001F369", \ 256 | @":dragon:" : @"\U0001F409", \ 257 | @":dragon_face:" : @"\U0001F432", \ 258 | @":dress:" : @"\U0001F457", \ 259 | @":dromedary_camel:" : @"\U0001F42A", \ 260 | @":droplet:" : @"\U0001F4A7", \ 261 | @":dvd:" : @"\U0001F4C0", \ 262 | @":e-mail:" : @"\U0001F4E7", \ 263 | @":ear:" : @"\U0001F442", \ 264 | @":ear_of_rice:" : @"\U0001F33E", \ 265 | @":earth_africa:" : @"\U0001F30D", \ 266 | @":earth_americas:" : @"\U0001F30E", \ 267 | @":earth_asia:" : @"\U0001F30F", \ 268 | @":egg:" : @"\U0001F373", \ 269 | @":eggplant:" : @"\U0001F346", \ 270 | @":eight_pointed_black_star:" : @"\U00002734", \ 271 | @":eight_spoked_asterisk:" : @"\U00002733", \ 272 | @":electric_plug:" : @"\U0001F50C", \ 273 | @":elephant:" : @"\U0001F418", \ 274 | @":email:" : @"\U00002709", \ 275 | @":end:" : @"\U0001F51A", \ 276 | @":envelope:" : @"\U00002709", \ 277 | @":envelope_with_arrow:" : @"\U0001F4E9", \ 278 | @":euro:" : @"\U0001F4B6", \ 279 | @":european_castle:" : @"\U0001F3F0", \ 280 | @":european_post_office:" : @"\U0001F3E4", \ 281 | @":evergreen_tree:" : @"\U0001F332", \ 282 | @":exclamation:" : @"\U00002757", \ 283 | @":expressionless:" : @"\U0001F611", \ 284 | @":eyeglasses:" : @"\U0001F453", \ 285 | @":eyes:" : @"\U0001F440", \ 286 | @":facepunch:" : @"\U0001F44A", \ 287 | @":factory:" : @"\U0001F3ED", \ 288 | @":fallen_leaf:" : @"\U0001F342", \ 289 | @":family:" : @"\U0001F46A", \ 290 | @":fast_forward:" : @"\U000023E9", \ 291 | @":fax:" : @"\U0001F4E0", \ 292 | @":fearful:" : @"\U0001F628", \ 293 | @":feet:" : @"\U0001F43E", \ 294 | @":ferris_wheel:" : @"\U0001F3A1", \ 295 | @":file_folder:" : @"\U0001F4C1", \ 296 | @":fire:" : @"\U0001F525", \ 297 | @":fire_engine:" : @"\U0001F692", \ 298 | @":fireworks:" : @"\U0001F386", \ 299 | @":first_quarter_moon:" : @"\U0001F313", \ 300 | @":first_quarter_moon_with_face:" : @"\U0001F31B", \ 301 | @":fish:" : @"\U0001F41F", \ 302 | @":fish_cake:" : @"\U0001F365", \ 303 | @":fishing_pole_and_fish:" : @"\U0001F3A3", \ 304 | @":fist:" : @"\U0000270A", \ 305 | @":flags:" : @"\U0001F38F", \ 306 | @":flashlight:" : @"\U0001F526", \ 307 | @":flipper:" : @"\U0001F42C", \ 308 | @":floppy_disk:" : @"\U0001F4BE", \ 309 | @":flower_playing_cards:" : @"\U0001F3B4", \ 310 | @":flushed:" : @"\U0001F633", \ 311 | @":foggy:" : @"\U0001F301", \ 312 | @":football:" : @"\U0001F3C8", \ 313 | @":footprints:" : @"\U0001F463", \ 314 | @":fork_and_knife:" : @"\U0001F374", \ 315 | @":fountain:" : @"\U000026F2", \ 316 | @":four_leaf_clover:" : @"\U0001F340", \ 317 | @":free:" : @"\U0001F193", \ 318 | @":fried_shrimp:" : @"\U0001F364", \ 319 | @":fries:" : @"\U0001F35F", \ 320 | @":frog:" : @"\U0001F438", \ 321 | @":frowning:" : @"\U0001F626", \ 322 | @":fuelpump:" : @"\U000026FD", \ 323 | @":full_moon:" : @"\U0001F315", \ 324 | @":full_moon_with_face:" : @"\U0001F31D", \ 325 | @":game_die:" : @"\U0001F3B2", \ 326 | @":gem:" : @"\U0001F48E", \ 327 | @":gemini:" : @"\U0000264A", \ 328 | @":ghost:" : @"\U0001F47B", \ 329 | @":gift:" : @"\U0001F381", \ 330 | @":gift_heart:" : @"\U0001F49D", \ 331 | @":girl:" : @"\U0001F467", \ 332 | @":globe_with_meridians:" : @"\U0001F310", \ 333 | @":goat:" : @"\U0001F410", \ 334 | @":golf:" : @"\U000026F3", \ 335 | @":grapes:" : @"\U0001F347", \ 336 | @":green_apple:" : @"\U0001F34F", \ 337 | @":green_book:" : @"\U0001F4D7", \ 338 | @":green_heart:" : @"\U0001F49A", \ 339 | @":grey_exclamation:" : @"\U00002755", \ 340 | @":grey_question:" : @"\U00002754", \ 341 | @":grimacing:" : @"\U0001F62C", \ 342 | @":grin:" : @"\U0001F601", \ 343 | @":grinning:" : @"\U0001F600", \ 344 | @":guardsman:" : @"\U0001F482", \ 345 | @":guitar:" : @"\U0001F3B8", \ 346 | @":gun:" : @"\U0001F52B", \ 347 | @":haircut:" : @"\U0001F487", \ 348 | @":hamburger:" : @"\U0001F354", \ 349 | @":hammer:" : @"\U0001F528", \ 350 | @":hamster:" : @"\U0001F439", \ 351 | @":hand:" : @"\U0000270B", \ 352 | @":handbag:" : @"\U0001F45C", \ 353 | @":hankey:" : @"\U0001F4A9", \ 354 | @":hatched_chick:" : @"\U0001F425", \ 355 | @":hatching_chick:" : @"\U0001F423", \ 356 | @":headphones:" : @"\U0001F3A7", \ 357 | @":hear_no_evil:" : @"\U0001F649", \ 358 | @":heart:" : @"\U00002764", \ 359 | @":heart_decoration:" : @"\U0001F49F", \ 360 | @":heart_eyes:" : @"\U0001F60D", \ 361 | @":heart_eyes_cat:" : @"\U0001F63B", \ 362 | @":heartbeat:" : @"\U0001F493", \ 363 | @":heartpulse:" : @"\U0001F497", \ 364 | @":hearts:" : @"\U00002665", \ 365 | @":heavy_check_mark:" : @"\U00002714", \ 366 | @":heavy_division_sign:" : @"\U00002797", \ 367 | @":heavy_dollar_sign:" : @"\U0001F4B2", \ 368 | @":heavy_exclamation_mark:" : @"\U00002757", \ 369 | @":heavy_minus_sign:" : @"\U00002796", \ 370 | @":heavy_multiplication_x:" : @"\U00002716", \ 371 | @":heavy_plus_sign:" : @"\U00002795", \ 372 | @":helicopter:" : @"\U0001F681", \ 373 | @":herb:" : @"\U0001F33F", \ 374 | @":hibiscus:" : @"\U0001F33A", \ 375 | @":high_brightness:" : @"\U0001F506", \ 376 | @":high_heel:" : @"\U0001F460", \ 377 | @":hocho:" : @"\U0001F52A", \ 378 | @":honey_pot:" : @"\U0001F36F", \ 379 | @":honeybee:" : @"\U0001F41D", \ 380 | @":horse:" : @"\U0001F434", \ 381 | @":horse_racing:" : @"\U0001F3C7", \ 382 | @":hospital:" : @"\U0001F3E5", \ 383 | @":hotel:" : @"\U0001F3E8", \ 384 | @":hotsprings:" : @"\U00002668", \ 385 | @":hourglass:" : @"\U0000231B", \ 386 | @":hourglass_flowing_sand:" : @"\U000023F3", \ 387 | @":house:" : @"\U0001F3E0", \ 388 | @":house_with_garden:" : @"\U0001F3E1", \ 389 | @":hushed:" : @"\U0001F62F", \ 390 | @":ice_cream:" : @"\U0001F368", \ 391 | @":icecream:" : @"\U0001F366", \ 392 | @":id:" : @"\U0001F194", \ 393 | @":ideograph_advantage:" : @"\U0001F250", \ 394 | @":imp:" : @"\U0001F47F", \ 395 | @":inbox_tray:" : @"\U0001F4E5", \ 396 | @":incoming_envelope:" : @"\U0001F4E8", \ 397 | @":information_desk_person:" : @"\U0001F481", \ 398 | @":information_source:" : @"\U00002139", \ 399 | @":innocent:" : @"\U0001F607", \ 400 | @":interrobang:" : @"\U00002049", \ 401 | @":iphone:" : @"\U0001F4F1", \ 402 | @":izakaya_lantern:" : @"\U0001F3EE", \ 403 | @":jack_o_lantern:" : @"\U0001F383", \ 404 | @":japan:" : @"\U0001F5FE", \ 405 | @":japanese_castle:" : @"\U0001F3EF", \ 406 | @":japanese_goblin:" : @"\U0001F47A", \ 407 | @":japanese_ogre:" : @"\U0001F479", \ 408 | @":jeans:" : @"\U0001F456", \ 409 | @":joy:" : @"\U0001F602", \ 410 | @":joy_cat:" : @"\U0001F639", \ 411 | @":key:" : @"\U0001F511", \ 412 | @":keycap_ten:" : @"\U0001F51F", \ 413 | @":kimono:" : @"\U0001F458", \ 414 | @":kiss:" : @"\U0001F48B", \ 415 | @":kissing:" : @"\U0001F617", \ 416 | @":kissing_cat:" : @"\U0001F63D", \ 417 | @":kissing_closed_eyes:" : @"\U0001F61A", \ 418 | @":kissing_heart:" : @"\U0001F618", \ 419 | @":kissing_smiling_eyes:" : @"\U0001F619", \ 420 | @":koala:" : @"\U0001F428", \ 421 | @":koko:" : @"\U0001F201", \ 422 | @":lantern:" : @"\U0001F3EE", \ 423 | @":large_blue_circle:" : @"\U0001F535", \ 424 | @":large_blue_diamond:" : @"\U0001F537", \ 425 | @":large_orange_diamond:" : @"\U0001F536", \ 426 | @":last_quarter_moon:" : @"\U0001F317", \ 427 | @":last_quarter_moon_with_face:" : @"\U0001F31C", \ 428 | @":laughing:" : @"\U0001F606", \ 429 | @":leaves:" : @"\U0001F343", \ 430 | @":ledger:" : @"\U0001F4D2", \ 431 | @":left_luggage:" : @"\U0001F6C5", \ 432 | @":left_right_arrow:" : @"\U00002194", \ 433 | @":leftwards_arrow_with_hook:" : @"\U000021A9", \ 434 | @":lemon:" : @"\U0001F34B", \ 435 | @":leo:" : @"\U0000264C", \ 436 | @":leopard:" : @"\U0001F406", \ 437 | @":libra:" : @"\U0000264E", \ 438 | @":light_rail:" : @"\U0001F688", \ 439 | @":link:" : @"\U0001F517", \ 440 | @":lips:" : @"\U0001F444", \ 441 | @":lipstick:" : @"\U0001F484", \ 442 | @":lock:" : @"\U0001F512", \ 443 | @":lock_with_ink_pen:" : @"\U0001F50F", \ 444 | @":lollipop:" : @"\U0001F36D", \ 445 | @":loop:" : @"\U000027BF", \ 446 | @":loudspeaker:" : @"\U0001F4E2", \ 447 | @":love_hotel:" : @"\U0001F3E9", \ 448 | @":love_letter:" : @"\U0001F48C", \ 449 | @":low_brightness:" : @"\U0001F505", \ 450 | @":m:" : @"\U000024C2", \ 451 | @":mag:" : @"\U0001F50D", \ 452 | @":mag_right:" : @"\U0001F50E", \ 453 | @":mahjong:" : @"\U0001F004", \ 454 | @":mailbox:" : @"\U0001F4EB", \ 455 | @":mailbox_closed:" : @"\U0001F4EA", \ 456 | @":mailbox_with_mail:" : @"\U0001F4EC", \ 457 | @":mailbox_with_no_mail:" : @"\U0001F4ED", \ 458 | @":man:" : @"\U0001F468", \ 459 | @":man_with_gua_pi_mao:" : @"\U0001F472", \ 460 | @":man_with_turban:" : @"\U0001F473", \ 461 | @":mans_shoe:" : @"\U0001F45E", \ 462 | @":maple_leaf:" : @"\U0001F341", \ 463 | @":mask:" : @"\U0001F637", \ 464 | @":massage:" : @"\U0001F486", \ 465 | @":meat_on_bone:" : @"\U0001F356", \ 466 | @":mega:" : @"\U0001F4E3", \ 467 | @":melon:" : @"\U0001F348", \ 468 | @":memo:" : @"\U0001F4DD", \ 469 | @":mens:" : @"\U0001F6B9", \ 470 | @":metro:" : @"\U0001F687", \ 471 | @":microphone:" : @"\U0001F3A4", \ 472 | @":microscope:" : @"\U0001F52C", \ 473 | @":milky_way:" : @"\U0001F30C", \ 474 | @":minibus:" : @"\U0001F690", \ 475 | @":minidisc:" : @"\U0001F4BD", \ 476 | @":mobile_phone_off:" : @"\U0001F4F4", \ 477 | @":money_with_wings:" : @"\U0001F4B8", \ 478 | @":moneybag:" : @"\U0001F4B0", \ 479 | @":monkey:" : @"\U0001F412", \ 480 | @":monkey_face:" : @"\U0001F435", \ 481 | @":monorail:" : @"\U0001F69D", \ 482 | @":moon:" : @"\U0001F314", \ 483 | @":mortar_board:" : @"\U0001F393", \ 484 | @":mount_fuji:" : @"\U0001F5FB", \ 485 | @":mountain_bicyclist:" : @"\U0001F6B5", \ 486 | @":mountain_cableway:" : @"\U0001F6A0", \ 487 | @":mountain_railway:" : @"\U0001F69E", \ 488 | @":mouse:" : @"\U0001F42D", \ 489 | @":mouse2:" : @"\U0001F401", \ 490 | @":movie_camera:" : @"\U0001F3A5", \ 491 | @":moyai:" : @"\U0001F5FF", \ 492 | @":muscle:" : @"\U0001F4AA", \ 493 | @":mushroom:" : @"\U0001F344", \ 494 | @":musical_keyboard:" : @"\U0001F3B9", \ 495 | @":musical_note:" : @"\U0001F3B5", \ 496 | @":musical_score:" : @"\U0001F3BC", \ 497 | @":mute:" : @"\U0001F507", \ 498 | @":nail_care:" : @"\U0001F485", \ 499 | @":name_badge:" : @"\U0001F4DB", \ 500 | @":necktie:" : @"\U0001F454", \ 501 | @":negative_squared_cross_mark:" : @"\U0000274E", \ 502 | @":neutral_face:" : @"\U0001F610", \ 503 | @":new:" : @"\U0001F195", \ 504 | @":new_moon:" : @"\U0001F311", \ 505 | @":new_moon_with_face:" : @"\U0001F31A", \ 506 | @":newspaper:" : @"\U0001F4F0", \ 507 | @":ng:" : @"\U0001F196", \ 508 | @":no_bell:" : @"\U0001F515", \ 509 | @":no_bicycles:" : @"\U0001F6B3", \ 510 | @":no_entry:" : @"\U000026D4", \ 511 | @":no_entry_sign:" : @"\U0001F6AB", \ 512 | @":no_good:" : @"\U0001F645", \ 513 | @":no_mobile_phones:" : @"\U0001F4F5", \ 514 | @":no_mouth:" : @"\U0001F636", \ 515 | @":no_pedestrians:" : @"\U0001F6B7", \ 516 | @":no_smoking:" : @"\U0001F6AD", \ 517 | @":non-potable_water:" : @"\U0001F6B1", \ 518 | @":nose:" : @"\U0001F443", \ 519 | @":notebook:" : @"\U0001F4D3", \ 520 | @":notebook_with_decorative_cover:" : @"\U0001F4D4", \ 521 | @":notes:" : @"\U0001F3B6", \ 522 | @":nut_and_bolt:" : @"\U0001F529", \ 523 | @":o:" : @"\U00002B55", \ 524 | @":o2:" : @"\U0001F17E", \ 525 | @":ocean:" : @"\U0001F30A", \ 526 | @":octopus:" : @"\U0001F419", \ 527 | @":oden:" : @"\U0001F362", \ 528 | @":office:" : @"\U0001F3E2", \ 529 | @":ok:" : @"\U0001F197", \ 530 | @":ok_hand:" : @"\U0001F44C", \ 531 | @":ok_woman:" : @"\U0001F646", \ 532 | @":older_man:" : @"\U0001F474", \ 533 | @":older_woman:" : @"\U0001F475", \ 534 | @":on:" : @"\U0001F51B", \ 535 | @":oncoming_automobile:" : @"\U0001F698", \ 536 | @":oncoming_bus:" : @"\U0001F68D", \ 537 | @":oncoming_police_car:" : @"\U0001F694", \ 538 | @":oncoming_taxi:" : @"\U0001F696", \ 539 | @":open_book:" : @"\U0001F4D6", \ 540 | @":open_file_folder:" : @"\U0001F4C2", \ 541 | @":open_hands:" : @"\U0001F450", \ 542 | @":open_mouth:" : @"\U0001F62E", \ 543 | @":ophiuchus:" : @"\U000026CE", \ 544 | @":orange_book:" : @"\U0001F4D9", \ 545 | @":outbox_tray:" : @"\U0001F4E4", \ 546 | @":ox:" : @"\U0001F402", \ 547 | @":package:" : @"\U0001F4E6", \ 548 | @":page_facing_up:" : @"\U0001F4C4", \ 549 | @":page_with_curl:" : @"\U0001F4C3", \ 550 | @":pager:" : @"\U0001F4DF", \ 551 | @":palm_tree:" : @"\U0001F334", \ 552 | @":panda_face:" : @"\U0001F43C", \ 553 | @":paperclip:" : @"\U0001F4CE", \ 554 | @":parking:" : @"\U0001F17F", \ 555 | @":part_alternation_mark:" : @"\U0000303D", \ 556 | @":partly_sunny:" : @"\U000026C5", \ 557 | @":passport_control:" : @"\U0001F6C2", \ 558 | @":paw_prints:" : @"\U0001F43E", \ 559 | @":peach:" : @"\U0001F351", \ 560 | @":pear:" : @"\U0001F350", \ 561 | @":pencil:" : @"\U0001F4DD", \ 562 | @":pencil2:" : @"\U0000270F", \ 563 | @":penguin:" : @"\U0001F427", \ 564 | @":pensive:" : @"\U0001F614", \ 565 | @":performing_arts:" : @"\U0001F3AD", \ 566 | @":persevere:" : @"\U0001F623", \ 567 | @":person_frowning:" : @"\U0001F64D", \ 568 | @":person_with_blond_hair:" : @"\U0001F471", \ 569 | @":person_with_pouting_face:" : @"\U0001F64E", \ 570 | @":phone:" : @"\U0000260E", \ 571 | @":pig:" : @"\U0001F437", \ 572 | @":pig2:" : @"\U0001F416", \ 573 | @":pig_nose:" : @"\U0001F43D", \ 574 | @":pill:" : @"\U0001F48A", \ 575 | @":pineapple:" : @"\U0001F34D", \ 576 | @":pisces:" : @"\U00002653", \ 577 | @":pizza:" : @"\U0001F355", \ 578 | @":point_down:" : @"\U0001F447", \ 579 | @":point_left:" : @"\U0001F448", \ 580 | @":point_right:" : @"\U0001F449", \ 581 | @":point_up:" : @"\U0000261D", \ 582 | @":point_up_2:" : @"\U0001F446", \ 583 | @":police_car:" : @"\U0001F693", \ 584 | @":poodle:" : @"\U0001F429", \ 585 | @":poop:" : @"\U0001F4A9", \ 586 | @":post_office:" : @"\U0001F3E3", \ 587 | @":postal_horn:" : @"\U0001F4EF", \ 588 | @":postbox:" : @"\U0001F4EE", \ 589 | @":potable_water:" : @"\U0001F6B0", \ 590 | @":pouch:" : @"\U0001F45D", \ 591 | @":poultry_leg:" : @"\U0001F357", \ 592 | @":pound:" : @"\U0001F4B7", \ 593 | @":pouting_cat:" : @"\U0001F63E", \ 594 | @":pray:" : @"\U0001F64F", \ 595 | @":princess:" : @"\U0001F478", \ 596 | @":punch:" : @"\U0001F44A", \ 597 | @":purple_heart:" : @"\U0001F49C", \ 598 | @":purse:" : @"\U0001F45B", \ 599 | @":pushpin:" : @"\U0001F4CC", \ 600 | @":put_litter_in_its_place:" : @"\U0001F6AE", \ 601 | @":question:" : @"\U00002753", \ 602 | @":rabbit:" : @"\U0001F430", \ 603 | @":rabbit2:" : @"\U0001F407", \ 604 | @":racehorse:" : @"\U0001F40E", \ 605 | @":radio:" : @"\U0001F4FB", \ 606 | @":radio_button:" : @"\U0001F518", \ 607 | @":rage:" : @"\U0001F621", \ 608 | @":railway_car:" : @"\U0001F683", \ 609 | @":rainbow:" : @"\U0001F308", \ 610 | @":raised_hand:" : @"\U0000270B", \ 611 | @":raised_hands:" : @"\U0001F64C", \ 612 | @":raising_hand:" : @"\U0001F64B", \ 613 | @":ram:" : @"\U0001F40F", \ 614 | @":ramen:" : @"\U0001F35C", \ 615 | @":rat:" : @"\U0001F400", \ 616 | @":recycle:" : @"\U0000267B", \ 617 | @":red_car:" : @"\U0001F697", \ 618 | @":red_circle:" : @"\U0001F534", \ 619 | @":registered:" : @"\U000000AE", \ 620 | @":relaxed:" : @"\U0000263A", \ 621 | @":relieved:" : @"\U0001F60C", \ 622 | @":repeat:" : @"\U0001F501", \ 623 | @":repeat_one:" : @"\U0001F502", \ 624 | @":restroom:" : @"\U0001F6BB", \ 625 | @":revolving_hearts:" : @"\U0001F49E", \ 626 | @":rewind:" : @"\U000023EA", \ 627 | @":ribbon:" : @"\U0001F380", \ 628 | @":rice:" : @"\U0001F35A", \ 629 | @":rice_ball:" : @"\U0001F359", \ 630 | @":rice_cracker:" : @"\U0001F358", \ 631 | @":rice_scene:" : @"\U0001F391", \ 632 | @":ring:" : @"\U0001F48D", \ 633 | @":rocket:" : @"\U0001F680", \ 634 | @":roller_coaster:" : @"\U0001F3A2", \ 635 | @":rooster:" : @"\U0001F413", \ 636 | @":rose:" : @"\U0001F339", \ 637 | @":rotating_light:" : @"\U0001F6A8", \ 638 | @":round_pushpin:" : @"\U0001F4CD", \ 639 | @":rowboat:" : @"\U0001F6A3", \ 640 | @":rugby_football:" : @"\U0001F3C9", \ 641 | @":runner:" : @"\U0001F3C3", \ 642 | @":running:" : @"\U0001F3C3", \ 643 | @":running_shirt_with_sash:" : @"\U0001F3BD", \ 644 | @":sa:" : @"\U0001F202", \ 645 | @":sagittarius:" : @"\U00002650", \ 646 | @":sailboat:" : @"\U000026F5", \ 647 | @":sake:" : @"\U0001F376", \ 648 | @":sandal:" : @"\U0001F461", \ 649 | @":santa:" : @"\U0001F385", \ 650 | @":satellite:" : @"\U0001F4E1", \ 651 | @":satisfied:" : @"\U0001F606", \ 652 | @":saxophone:" : @"\U0001F3B7", \ 653 | @":school:" : @"\U0001F3EB", \ 654 | @":school_satchel:" : @"\U0001F392", \ 655 | @":scissors:" : @"\U00002702", \ 656 | @":scorpius:" : @"\U0000264F", \ 657 | @":scream:" : @"\U0001F631", \ 658 | @":scream_cat:" : @"\U0001F640", \ 659 | @":scroll:" : @"\U0001F4DC", \ 660 | @":seat:" : @"\U0001F4BA", \ 661 | @":secret:" : @"\U00003299", \ 662 | @":see_no_evil:" : @"\U0001F648", \ 663 | @":seedling:" : @"\U0001F331", \ 664 | @":shaved_ice:" : @"\U0001F367", \ 665 | @":sheep:" : @"\U0001F411", \ 666 | @":shell:" : @"\U0001F41A", \ 667 | @":ship:" : @"\U0001F6A2", \ 668 | @":shirt:" : @"\U0001F455", \ 669 | @":shit:" : @"\U0001F4A9", \ 670 | @":shoe:" : @"\U0001F45E", \ 671 | @":shower:" : @"\U0001F6BF", \ 672 | @":signal_strength:" : @"\U0001F4F6", \ 673 | @":six_pointed_star:" : @"\U0001F52F", \ 674 | @":ski:" : @"\U0001F3BF", \ 675 | @":skull:" : @"\U0001F480", \ 676 | @":sleeping:" : @"\U0001F634", \ 677 | @":sleepy:" : @"\U0001F62A", \ 678 | @":slot_machine:" : @"\U0001F3B0", \ 679 | @":small_blue_diamond:" : @"\U0001F539", \ 680 | @":small_orange_diamond:" : @"\U0001F538", \ 681 | @":small_red_triangle:" : @"\U0001F53A", \ 682 | @":small_red_triangle_down:" : @"\U0001F53B", \ 683 | @":smile:" : @"\U0001F604", \ 684 | @":smile_cat:" : @"\U0001F638", \ 685 | @":smiley:" : @"\U0001F603", \ 686 | @":smiley_cat:" : @"\U0001F63A", \ 687 | @":smiling_imp:" : @"\U0001F608", \ 688 | @":smirk:" : @"\U0001F60F", \ 689 | @":smirk_cat:" : @"\U0001F63C", \ 690 | @":smoking:" : @"\U0001F6AC", \ 691 | @":snail:" : @"\U0001F40C", \ 692 | @":snake:" : @"\U0001F40D", \ 693 | @":snowboarder:" : @"\U0001F3C2", \ 694 | @":snowflake:" : @"\U00002744", \ 695 | @":snowman:" : @"\U000026C4", \ 696 | @":sob:" : @"\U0001F62D", \ 697 | @":soccer:" : @"\U000026BD", \ 698 | @":soon:" : @"\U0001F51C", \ 699 | @":sos:" : @"\U0001F198", \ 700 | @":sound:" : @"\U0001F509", \ 701 | @":space_invader:" : @"\U0001F47E", \ 702 | @":spades:" : @"\U00002660", \ 703 | @":spaghetti:" : @"\U0001F35D", \ 704 | @":sparkle:" : @"\U00002747", \ 705 | @":sparkler:" : @"\U0001F387", \ 706 | @":sparkles:" : @"\U00002728", \ 707 | @":sparkling_heart:" : @"\U0001F496", \ 708 | @":speak_no_evil:" : @"\U0001F64A", \ 709 | @":speaker:" : @"\U0001F50A", \ 710 | @":speech_balloon:" : @"\U0001F4AC", \ 711 | @":speedboat:" : @"\U0001F6A4", \ 712 | @":star:" : @"\U00002B50", \ 713 | @":star2:" : @"\U0001F31F", \ 714 | @":stars:" : @"\U0001F303", \ 715 | @":station:" : @"\U0001F689", \ 716 | @":statue_of_liberty:" : @"\U0001F5FD", \ 717 | @":steam_locomotive:" : @"\U0001F682", \ 718 | @":stew:" : @"\U0001F372", \ 719 | @":straight_ruler:" : @"\U0001F4CF", \ 720 | @":strawberry:" : @"\U0001F353", \ 721 | @":stuck_out_tongue:" : @"\U0001F61B", \ 722 | @":stuck_out_tongue_closed_eyes:" : @"\U0001F61D", \ 723 | @":stuck_out_tongue_winking_eye:" : @"\U0001F61C", \ 724 | @":sun_with_face:" : @"\U0001F31E", \ 725 | @":sunflower:" : @"\U0001F33B", \ 726 | @":sunglasses:" : @"\U0001F60E", \ 727 | @":sunny:" : @"\U00002600", \ 728 | @":sunrise:" : @"\U0001F305", \ 729 | @":sunrise_over_mountains:" : @"\U0001F304", \ 730 | @":surfer:" : @"\U0001F3C4", \ 731 | @":sushi:" : @"\U0001F363", \ 732 | @":suspension_railway:" : @"\U0001F69F", \ 733 | @":sweat:" : @"\U0001F613", \ 734 | @":sweat_drops:" : @"\U0001F4A6", \ 735 | @":sweat_smile:" : @"\U0001F605", \ 736 | @":sweet_potato:" : @"\U0001F360", \ 737 | @":swimmer:" : @"\U0001F3CA", \ 738 | @":symbols:" : @"\U0001F523", \ 739 | @":syringe:" : @"\U0001F489", \ 740 | @":tada:" : @"\U0001F389", \ 741 | @":tanabata_tree:" : @"\U0001F38B", \ 742 | @":tangerine:" : @"\U0001F34A", \ 743 | @":taurus:" : @"\U00002649", \ 744 | @":taxi:" : @"\U0001F695", \ 745 | @":tea:" : @"\U0001F375", \ 746 | @":telephone:" : @"\U0000260E", \ 747 | @":telephone_receiver:" : @"\U0001F4DE", \ 748 | @":telescope:" : @"\U0001F52D", \ 749 | @":tennis:" : @"\U0001F3BE", \ 750 | @":tent:" : @"\U000026FA", \ 751 | @":thought_balloon:" : @"\U0001F4AD", \ 752 | @":thumbsdown:" : @"\U0001F44E", \ 753 | @":thumbsup:" : @"\U0001F44D", \ 754 | @":ticket:" : @"\U0001F3AB", \ 755 | @":tiger:" : @"\U0001F42F", \ 756 | @":tiger2:" : @"\U0001F405", \ 757 | @":tired_face:" : @"\U0001F62B", \ 758 | @":tm:" : @"\U00002122", \ 759 | @":toilet:" : @"\U0001F6BD", \ 760 | @":tokyo_tower:" : @"\U0001F5FC", \ 761 | @":tomato:" : @"\U0001F345", \ 762 | @":tongue:" : @"\U0001F445", \ 763 | @":top:" : @"\U0001F51D", \ 764 | @":tophat:" : @"\U0001F3A9", \ 765 | @":tractor:" : @"\U0001F69C", \ 766 | @":traffic_light:" : @"\U0001F6A5", \ 767 | @":train:" : @"\U0001F683", \ 768 | @":train2:" : @"\U0001F686", \ 769 | @":tram:" : @"\U0001F68A", \ 770 | @":triangular_flag_on_post:" : @"\U0001F6A9", \ 771 | @":triangular_ruler:" : @"\U0001F4D0", \ 772 | @":trident:" : @"\U0001F531", \ 773 | @":triumph:" : @"\U0001F624", \ 774 | @":trolleybus:" : @"\U0001F68E", \ 775 | @":trophy:" : @"\U0001F3C6", \ 776 | @":tropical_drink:" : @"\U0001F379", \ 777 | @":tropical_fish:" : @"\U0001F420", \ 778 | @":truck:" : @"\U0001F69A", \ 779 | @":trumpet:" : @"\U0001F3BA", \ 780 | @":tshirt:" : @"\U0001F455", \ 781 | @":tulip:" : @"\U0001F337", \ 782 | @":turtle:" : @"\U0001F422", \ 783 | @":tv:" : @"\U0001F4FA", \ 784 | @":twisted_rightwards_arrows:" : @"\U0001F500", \ 785 | @":two_hearts:" : @"\U0001F495", \ 786 | @":two_men_holding_hands:" : @"\U0001F46C", \ 787 | @":two_women_holding_hands:" : @"\U0001F46D", \ 788 | @":u5272:" : @"\U0001F239", \ 789 | @":u5408:" : @"\U0001F234", \ 790 | @":u55b6:" : @"\U0001F23A", \ 791 | @":u6307:" : @"\U0001F22F", \ 792 | @":u6708:" : @"\U0001F237", \ 793 | @":u6709:" : @"\U0001F236", \ 794 | @":u6e80:" : @"\U0001F235", \ 795 | @":u7121:" : @"\U0001F21A", \ 796 | @":u7533:" : @"\U0001F238", \ 797 | @":u7981:" : @"\U0001F232", \ 798 | @":u7a7a:" : @"\U0001F233", \ 799 | @":umbrella:" : @"\U00002614", \ 800 | @":unamused:" : @"\U0001F612", \ 801 | @":underage:" : @"\U0001F51E", \ 802 | @":unlock:" : @"\U0001F513", \ 803 | @":up:" : @"\U0001F199", \ 804 | @":v:" : @"\U0000270C", \ 805 | @":vertical_traffic_light:" : @"\U0001F6A6", \ 806 | @":vhs:" : @"\U0001F4FC", \ 807 | @":vibration_mode:" : @"\U0001F4F3", \ 808 | @":video_camera:" : @"\U0001F4F9", \ 809 | @":video_game:" : @"\U0001F3AE", \ 810 | @":violin:" : @"\U0001F3BB", \ 811 | @":virgo:" : @"\U0000264D", \ 812 | @":volcano:" : @"\U0001F30B", \ 813 | @":vs:" : @"\U0001F19A", \ 814 | @":walking:" : @"\U0001F6B6", \ 815 | @":waning_crescent_moon:" : @"\U0001F318", \ 816 | @":waning_gibbous_moon:" : @"\U0001F316", \ 817 | @":warning:" : @"\U000026A0", \ 818 | @":watch:" : @"\U0000231A", \ 819 | @":water_buffalo:" : @"\U0001F403", \ 820 | @":watermelon:" : @"\U0001F349", \ 821 | @":wave:" : @"\U0001F44B", \ 822 | @":wavy_dash:" : @"\U00003030", \ 823 | @":waxing_crescent_moon:" : @"\U0001F312", \ 824 | @":waxing_gibbous_moon:" : @"\U0001F314", \ 825 | @":wc:" : @"\U0001F6BE", \ 826 | @":weary:" : @"\U0001F629", \ 827 | @":wedding:" : @"\U0001F492", \ 828 | @":whale:" : @"\U0001F433", \ 829 | @":whale2:" : @"\U0001F40B", \ 830 | @":wheelchair:" : @"\U0000267F", \ 831 | @":white_check_mark:" : @"\U00002705", \ 832 | @":white_circle:" : @"\U000026AA", \ 833 | @":white_flower:" : @"\U0001F4AE", \ 834 | @":white_large_square:" : @"\U00002B1C", \ 835 | @":white_medium_small_square:" : @"\U000025FD", \ 836 | @":white_medium_square:" : @"\U000025FB", \ 837 | @":white_small_square:" : @"\U000025AB", \ 838 | @":white_square_button:" : @"\U0001F533", \ 839 | @":wind_chime:" : @"\U0001F390", \ 840 | @":wine_glass:" : @"\U0001F377", \ 841 | @":wink:" : @"\U0001F609", \ 842 | @":wolf:" : @"\U0001F43A", \ 843 | @":woman:" : @"\U0001F469", \ 844 | @":womans_clothes:" : @"\U0001F45A", \ 845 | @":womans_hat:" : @"\U0001F452", \ 846 | @":womens:" : @"\U0001F6BA", \ 847 | @":worried:" : @"\U0001F61F", \ 848 | @":wrench:" : @"\U0001F527", \ 849 | @":x:" : @"\U0000274C", \ 850 | @":yellow_heart:" : @"\U0001F49B", \ 851 | @":yen:" : @"\U0001F4B4", \ 852 | @":yum:" : @"\U0001F60B", \ 853 | @":zap:" : @"\U000026A1", \ 854 | @":zzz:" : @"\U0001F4A4" \ 855 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## NSString+Emojize 2 | #### A category on NSString to turn codes from [Emoji Cheat Sheet](http://www.emoji-cheat-sheet.com/) into Unicode emoji characters. 3 | 4 | ## Getting Started 5 | 6 | In order to use NSString+Emojize, you'll want to add the entirety of the `NSString+Emojize` directory to your project. To get started, simply: 7 | 8 | ```objective-c 9 | #import "NSString+Emojize.h" 10 | ``` 11 | 12 | ```objective-c 13 | NSString *emojiString = @"This comment has an emoji :mushroom:"; 14 | NSLog(@"%@", [emojiString emojizedString]); 15 | ``` 16 | 17 | --- 18 | 19 | ## Methods 20 | ```objective-c 21 | - (NSString *)emojizedString; 22 | + (NSString *)emojizedStringWithString:(NSString *)aString; 23 | ``` 24 | 25 | --- 26 | 27 | ## iOS Support 28 | NSString+Emojize is tested on iOS 5 and up. Older versions of iOS may work but are not currently supported. 29 | 30 | ## ARC 31 | NSString+Emojize uses ARC. If you are including NSString+Emojize in a project that **does not** use [Automatic Reference Counting (ARC)](http://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html), you will need to set the `-fobjc-arc` compiler flag on all of the NSString+Emojize source files. To do this in Xcode, go to your active target and select the "Build Phases" tab. Now select all NSString+Emojize source files, press Enter, insert `-fobjc-arc` and then "Done" to enable ARC for NSString+Emojize. 32 | --------------------------------------------------------------------------------