comparison dstep/foundation/NSString.d @ 14:89f3c3ef1fd2

Added the Foundation framework
author Jacob Carlborg <doob@me.com>
date Mon, 03 Aug 2009 15:23:15 +0200
parents
children 19885b43130e
comparison
equal deleted inserted replaced
13:4f583f7e242e 14:89f3c3ef1fd2
1 /**
2 * Copyright: Copyright (c) 2009 Jacob Carlborg.
3 * Authors: Jacob Carlborg
4 * Version: Initial created: Aug 3, 2009
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
6 */
7 module dstep.foundation.NSString;
8
9 import dstep.foundation.NSArray;
10 import dstep.foundation.NSCharacterSet;
11 import dstep.foundation.NSData;
12 import dstep.foundation.NSDictionary;
13 import dstep.foundation.NSError;
14 import dstep.foundation.NSLocale;
15 import dstep.foundation.NSObject;
16 import dstep.foundation.NSRange;
17 import dstep.foundation.NSURL;
18 import dstep.limits;
19 import dstep.objc.bridge.Bridge;
20 import dstep.objc.objc : id;
21 import dstep.stdarg;
22
23 import bindings = dstep.foundation.NSString_bindings;
24
25 alias ushort unichar;
26 alias NSUInteger NSStringCompareOptions;
27 alias NSUInteger NSStringEncoding;
28 alias NSUInteger NSStringEncodingConversionOptions;
29
30 const NSString NSParseErrorException;
31 const NSString NSCharacterConversionException;
32
33 enum
34 {
35 NSCaseInsensitiveSearch = 1,
36 NSLiteralSearch = 2,
37 NSBackwardsSearch = 4,
38 NSAnchoredSearch = 8,
39 NSNumericSearch = 64,
40 NSDiacriticInsensitiveSearch = 128,
41 NSWidthInsensitiveSearch = 256,
42 NSForcedOrderingSearch = 512
43 }
44
45 enum
46 {
47 NSASCIIStringEncoding = 1,
48 NSNEXTSTEPStringEncoding = 2,
49 NSJapaneseEUCStringEncoding = 3,
50 NSUTF8StringEncoding = 4,
51 NSISOLatin1StringEncoding = 5,
52 NSSymbolStringEncoding = 6,
53 NSNonLossyASCIIStringEncoding = 7,
54 NSShiftJISStringEncoding = 8,
55 NSISOLatin2StringEncoding = 9,
56 NSUnicodeStringEncoding = 10,
57 NSWindowsCP1251StringEncoding = 11,
58 NSWindowsCP1252StringEncoding = 12,
59 NSWindowsCP1253StringEncoding = 13,
60 NSWindowsCP1254StringEncoding = 14,
61 NSWindowsCP1250StringEncoding = 15,
62 NSISO2022JPStringEncoding = 21,
63 NSMacOSRomanStringEncoding = 30,
64 NSUTF16StringEncoding = NSUnicodeStringEncoding,
65 NSUTF16BigEndianStringEncoding = 0x90000100,
66 NSUTF16LittleEndianStringEncoding = 0x94000100,
67 NSUTF32StringEncoding = 0x8c000100,
68 NSUTF32BigEndianStringEncoding = 0x98000100,
69 NSUTF32LittleEndianStringEncoding = 0x9c000100
70 }
71
72 enum
73 {
74 NSStringEncodingConversionAllowLossy = 1,
75 NSStringEncodingConversionExternalRepresentation = 2
76 }
77
78 static this ()
79 {
80 NSParseErrorException = new NSString(bindings.NSParseErrorException);
81 NSCharacterConversionException = new NSString(bindings.NSCharacterConversionException);
82 }
83
84 class NSMutableString : NSString
85 {
86 mixin ObjcWrap;
87 mixin TNSMutableStringExtensionMethods;
88
89 void replaceCharactersInRange (NSRange range, NSString aString)
90 {
91 return invokeObjcSelf!(void, "replaceCharactersInRange:withString:", NSRange, NSString)(range, aString);
92 }
93 }
94
95 class NSString : NSObject, INSCopying, INSMutableCopying, INSCoding
96 {
97 mixin ObjcWrap;
98 mixin TNSExtendedStringPropertyListParsing;
99 mixin TNSStringExtensionMethods;
100 mixin TNSStringPathExtensions;
101 mixin TNSURLUtilities;
102 mixin TNSStringDeprecated;
103
104 NSUInteger length ()
105 {
106 return invokeObjcSelf!(NSUInteger, "length");
107 }
108
109 ushort characterAtIndex (NSUInteger index)
110 {
111 return invokeObjcSelf!(ushort, "characterAtIndex:", NSUInteger)(index);
112 }
113
114 Object copyWithZone (NSZone* zone)
115 {
116 return invokeObjcSelf!(Object, "copyWithZone:", NSZone*)(zone);
117 }
118
119 Object mutableCopyWithZone (NSZone* zone)
120 {
121 return invokeObjcSelf!(Object, "mutableCopyWithZone:", NSZone*)(zone);
122 }
123
124 void encodeWithCoder (NSCoder aCoder)
125 {
126 return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder);
127 }
128
129 Object initWithCoder (NSCoder aDecoder)
130 {
131 return invokeObjcSelf!(Object, "initWithCoder:", NSCoder)(aDecoder);
132 }
133
134 this (NSCoder aDecoder)
135 {
136 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
137 id result = Bridge.invokeObjcMethod!(id, "initWithCoder:", NSCoder)(objcObject, aDecoder);
138
139 if (result)
140 objcObject = ret;
141
142 dObject = this;
143 }
144 }
145
146 template TNSExtendedStringPropertyListParsing ()
147 {
148 Object propertyList ()
149 {
150 return invokeObjcSelf!(Object, "propertyList");
151 }
152
153 NSDictionary propertyListFromStringsFileFormat ()
154 {
155 return invokeObjcSelf!(NSDictionary, "propertyListFromStringsFileFormat");
156 }
157 }
158
159 template TNSMutableStringExtensionMethods ()
160 {
161 void insertString (NSString aString, NSUInteger loc)
162 {
163 return invokeObjcSelf!(void, "insertString:atIndex:", NSString, NSUInteger)(aString, loc);
164 }
165
166 void deleteCharactersInRange (NSRange range)
167 {
168 return invokeObjcSelf!(void, "deleteCharactersInRange:", NSRange)(range);
169 }
170
171 void appendString (NSString aString)
172 {
173 return invokeObjcSelf!(void, "appendString:", NSString)(aString);
174 }
175
176 void appendFormat (NSString appendFormat, ...)
177 {
178 return invokeObjcSelf!(void, "appendFormat:", NSString)(appendFormat);
179 }
180
181 void setString (NSString aString)
182 {
183 return invokeObjcSelf!(void, "setString:", NSString)(aString);
184 }
185
186 Object initWithCapacity (NSUInteger capacity)
187 {
188 return invokeObjcSelf!(Object, "initWithCapacity:", NSUInteger)(capacity);
189 }
190
191 this (NSUInteger capacity)
192 {
193 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
194 id result = Bridge.invokeObjcMethod!(id, "initWithCapacity:", NSUInteger)(objcObject, capacity);
195
196 if (result)
197 objcObject = ret;
198
199 dObject = this;
200 }
201
202 static Object stringWithCapacity (NSUInteger capacity)
203 {
204 return invokeObjcSelfClass!(Object, "stringWithCapacity:", NSUInteger)(capacity);
205 }
206
207 NSUInteger replaceOccurrencesOfString (NSString target, NSString replacement, uint options, NSRange searchRange)
208 {
209 return invokeObjcSelf!(NSUInteger, "replaceOccurrencesOfString:withString:options:range:", NSString, NSString, uint, NSRange)(target, replacement, options, searchRange);
210 }
211 }
212
213 template TNSStringExtensionMethods ()
214 {
215 void getCharacters (unichar* buffer)
216 {
217 return invokeObjcSelf!(void, "getCharacters:", unichar*)(buffer);
218 }
219
220 void getCharacters (unichar* buffer, NSRange aRange)
221 {
222 return invokeObjcSelf!(void, "getCharacters:range:", unichar*, NSRange)(buffer, aRange);
223 }
224
225 NSString substringFromIndex (NSUInteger from)
226 {
227 return invokeObjcSelf!(NSString, "substringFromIndex:", NSUInteger)(from);
228 }
229
230 NSString substringToIndex (NSUInteger to)
231 {
232 return invokeObjcSelf!(NSString, "substringToIndex:", NSUInteger)(to);
233 }
234
235 NSString substringWithRange (NSRange range)
236 {
237 return invokeObjcSelf!(NSString, "substringWithRange:", NSRange)(range);
238 }
239
240 int compare (NSString string)
241 {
242 return invokeObjcSelf!(int, "compare:", NSString)(string);
243 }
244
245 int compare (NSString string, uint mask)
246 {
247 return invokeObjcSelf!(int, "compare:options:", NSString, uint)(string, mask);
248 }
249
250 int compare (NSString string, uint mask, NSRange compareRange)
251 {
252 return invokeObjcSelf!(int, "compare:options:range:", NSString, uint, NSRange)(string, mask, compareRange);
253 }
254
255 int compare (NSString string, uint mask, NSRange compareRange, Object locale)
256 {
257 return invokeObjcSelf!(int, "compare:options:range:locale:", NSString, uint, NSRange, Object)(string, mask, compareRange, locale);
258 }
259
260 int caseInsensitiveCompare (NSString string)
261 {
262 return invokeObjcSelf!(int, "caseInsensitiveCompare:", NSString)(string);
263 }
264
265 int localizedCompare (NSString string)
266 {
267 return invokeObjcSelf!(int, "localizedCompare:", NSString)(string);
268 }
269
270 int localizedCaseInsensitiveCompare (NSString string)
271 {
272 return invokeObjcSelf!(int, "localizedCaseInsensitiveCompare:", NSString)(string);
273 }
274
275 bool isEqualToString (NSString aString)
276 {
277 return invokeObjcSelf!(bool, "isEqualToString:", NSString)(aString);
278 }
279
280 bool hasPrefix (NSString aString)
281 {
282 return invokeObjcSelf!(bool, "hasPrefix:", NSString)(aString);
283 }
284
285 bool hasSuffix (NSString aString)
286 {
287 return invokeObjcSelf!(bool, "hasSuffix:", NSString)(aString);
288 }
289
290 NSRange rangeOfString (NSString aString)
291 {
292 return invokeObjcSelf!(NSRange, "rangeOfString:", NSString)(aString);
293 }
294
295 NSRange rangeOfString (NSString aString, uint mask)
296 {
297 return invokeObjcSelf!(NSRange, "rangeOfString:options:", NSString, uint)(aString, mask);
298 }
299
300 NSRange rangeOfString (NSString aString, uint mask, NSRange searchRange)
301 {
302 return invokeObjcSelf!(NSRange, "rangeOfString:options:range:", NSString, uint, NSRange)(aString, mask, searchRange);
303 }
304
305 NSRange rangeOfString (NSString aString, uint mask, NSRange searchRange, NSLocale locale)
306 {
307 return invokeObjcSelf!(NSRange, "rangeOfString:options:range:locale:", NSString, uint, NSRange, NSLocale)(aString, mask, searchRange, locale);
308 }
309
310 NSRange rangeOfCharacterFromSet (NSCharacterSet aSet)
311 {
312 return invokeObjcSelf!(NSRange, "rangeOfCharacterFromSet:", NSCharacterSet)(aSet);
313 }
314
315 NSRange rangeOfCharacterFromSet (NSCharacterSet aSet, uint mask)
316 {
317 return invokeObjcSelf!(NSRange, "rangeOfCharacterFromSet:options:", NSCharacterSet, uint)(aSet, mask);
318 }
319
320 NSRange rangeOfCharacterFromSet (NSCharacterSet aSet, uint mask, NSRange searchRange)
321 {
322 return invokeObjcSelf!(NSRange, "rangeOfCharacterFromSet:options:range:", NSCharacterSet, uint, NSRange)(aSet, mask, searchRange);
323 }
324
325 NSRange rangeOfComposedCharacterSequenceAtIndex (NSUInteger index)
326 {
327 return invokeObjcSelf!(NSRange, "rangeOfComposedCharacterSequenceAtIndex:", NSUInteger)(index);
328 }
329
330 NSRange rangeOfComposedCharacterSequencesForRange (NSRange range)
331 {
332 return invokeObjcSelf!(NSRange, "rangeOfComposedCharacterSequencesForRange:", NSRange)(range);
333 }
334
335 NSString stringByAppendingString (NSString aString)
336 {
337 return invokeObjcSelf!(NSString, "stringByAppendingString:", NSString)(aString);
338 }
339
340 NSString stringByAppendingFormat (NSString stringByAppendingFormat, ...)
341 {
342 return invokeObjcSelf!(NSString, "stringByAppendingFormat:", NSString)(stringByAppendingFormat);
343 }
344
345 double doubleValue ()
346 {
347 return invokeObjcSelf!(double, "doubleValue");
348 }
349
350 float floatValue ()
351 {
352 return invokeObjcSelf!(float, "floatValue");
353 }
354
355 int intValue ()
356 {
357 return invokeObjcSelf!(int, "intValue");
358 }
359
360 NSInteger integerValue ()
361 {
362 return invokeObjcSelf!(NSInteger, "integerValue");
363 }
364
365 long longLongValue ()
366 {
367 return invokeObjcSelf!(long, "longLongValue");
368 }
369
370 bool boolValue ()
371 {
372 return invokeObjcSelf!(bool, "boolValue");
373 }
374
375 NSArray componentsSeparatedByString (NSString separator)
376 {
377 return invokeObjcSelf!(NSArray, "componentsSeparatedByString:", NSString)(separator);
378 }
379
380 NSArray componentsSeparatedByCharactersInSet (NSCharacterSet separator)
381 {
382 return invokeObjcSelf!(NSArray, "componentsSeparatedByCharactersInSet:", NSCharacterSet)(separator);
383 }
384
385 NSString commonPrefixWithString (NSString aString, uint mask)
386 {
387 return invokeObjcSelf!(NSString, "commonPrefixWithString:options:", NSString, uint)(aString, mask);
388 }
389
390 NSString uppercaseString ()
391 {
392 return invokeObjcSelf!(NSString, "uppercaseString");
393 }
394
395 NSString lowercaseString ()
396 {
397 return invokeObjcSelf!(NSString, "lowercaseString");
398 }
399
400 NSString capitalizedString ()
401 {
402 return invokeObjcSelf!(NSString, "capitalizedString");
403 }
404
405 NSString stringByTrimmingCharactersInSet (NSCharacterSet set)
406 {
407 return invokeObjcSelf!(NSString, "stringByTrimmingCharactersInSet:", NSCharacterSet)(set);
408 }
409
410 NSString stringByPaddingToLength (NSUInteger newLength, NSString padString, NSUInteger padIndex)
411 {
412 return invokeObjcSelf!(NSString, "stringByPaddingToLength:withString:startingAtIndex:", NSUInteger, NSString, NSUInteger)(newLength, padString, padIndex);
413 }
414
415 void getLineStart (NSUInteger* startPtr, NSUInteger* lineEndPtr, NSUInteger* contentsEndPtr, NSRange range)
416 {
417 return invokeObjcSelf!(void, "getLineStart:end:contentsEnd:forRange:", NSUInteger*, NSUInteger*, NSUInteger*, NSRange)(startPtr, lineEndPtr, contentsEndPtr, range);
418 }
419
420 NSRange lineRangeForRange (NSRange range)
421 {
422 return invokeObjcSelf!(NSRange, "lineRangeForRange:", NSRange)(range);
423 }
424
425 void getParagraphStart (NSUInteger* startPtr, NSUInteger* parEndPtr, NSUInteger* contentsEndPtr, NSRange range)
426 {
427 return invokeObjcSelf!(void, "getParagraphStart:end:contentsEnd:forRange:", NSUInteger*, NSUInteger*, NSUInteger*, NSRange)(startPtr, parEndPtr, contentsEndPtr, range);
428 }
429
430 NSRange paragraphRangeForRange (NSRange range)
431 {
432 return invokeObjcSelf!(NSRange, "paragraphRangeForRange:", NSRange)(range);
433 }
434
435 NSString description ()
436 {
437 return invokeObjcSelf!(NSString, "description");
438 }
439
440 NSUInteger hash ()
441 {
442 return invokeObjcSelf!(NSUInteger, "hash");
443 }
444
445 uint fastestEncoding ()
446 {
447 return invokeObjcSelf!(uint, "fastestEncoding");
448 }
449
450 uint smallestEncoding ()
451 {
452 return invokeObjcSelf!(uint, "smallestEncoding");
453 }
454
455 NSData dataUsingEncoding (uint encoding, bool lossy)
456 {
457 return invokeObjcSelf!(NSData, "dataUsingEncoding:allowLossyConversion:", uint, bool)(encoding, lossy);
458 }
459
460 NSData dataUsingEncoding (uint encoding)
461 {
462 return invokeObjcSelf!(NSData, "dataUsingEncoding:", uint)(encoding);
463 }
464
465 bool canBeConvertedToEncoding (uint encoding)
466 {
467 return invokeObjcSelf!(bool, "canBeConvertedToEncoding:", uint)(encoding);
468 }
469
470 char* cStringUsingEncoding (uint encoding)
471 {
472 return invokeObjcSelf!(char*, "cStringUsingEncoding:", uint)(encoding);
473 }
474
475 bool getCString (char* buffer, NSUInteger maxBufferCount, uint encoding)
476 {
477 return invokeObjcSelf!(bool, "getCString:maxLength:encoding:", char*, NSUInteger, uint)(buffer, maxBufferCount, encoding);
478 }
479
480 bool getBytes (void* buffer, NSUInteger maxBufferCount, NSUInteger* usedBufferCount, uint encoding, uint options, NSRange range, NSRangePointer leftover)
481 {
482 return invokeObjcSelf!(bool, "getBytes:maxLength:usedLength:encoding:options:range:remainingRange:", void*, NSUInteger, NSUInteger*, uint, uint, NSRange, NSRangePointer)(buffer, maxBufferCount, usedBufferCount, encoding, options, range, leftover);
483 }
484
485 NSUInteger maximumLengthOfBytesUsingEncoding (uint enc)
486 {
487 return invokeObjcSelf!(NSUInteger, "maximumLengthOfBytesUsingEncoding:", uint)(enc);
488 }
489
490 NSUInteger lengthOfBytesUsingEncoding (uint enc)
491 {
492 return invokeObjcSelf!(NSUInteger, "lengthOfBytesUsingEncoding:", uint)(enc);
493 }
494
495 NSString decomposedStringWithCanonicalMapping ()
496 {
497 return invokeObjcSelf!(NSString, "decomposedStringWithCanonicalMapping");
498 }
499
500 NSString precomposedStringWithCanonicalMapping ()
501 {
502 return invokeObjcSelf!(NSString, "precomposedStringWithCanonicalMapping");
503 }
504
505 NSString decomposedStringWithCompatibilityMapping ()
506 {
507 return invokeObjcSelf!(NSString, "decomposedStringWithCompatibilityMapping");
508 }
509
510 NSString precomposedStringWithCompatibilityMapping ()
511 {
512 return invokeObjcSelf!(NSString, "precomposedStringWithCompatibilityMapping");
513 }
514
515 NSString stringByFoldingWithOptions (uint options, NSLocale locale)
516 {
517 return invokeObjcSelf!(NSString, "stringByFoldingWithOptions:locale:", uint, NSLocale)(options, locale);
518 }
519
520 NSString stringByReplacingOccurrencesOfString (NSString target, NSString replacement, uint options, NSRange searchRange)
521 {
522 return invokeObjcSelf!(NSString, "stringByReplacingOccurrencesOfString:withString:options:range:", NSString, NSString, uint, NSRange)(target, replacement, options, searchRange);
523 }
524
525 NSString stringByReplacingOccurrencesOfString (NSString target, NSString replacement)
526 {
527 return invokeObjcSelf!(NSString, "stringByReplacingOccurrencesOfString:withString:", NSString, NSString)(target, replacement);
528 }
529
530 NSString stringByReplacingCharactersInRange (NSRange range, NSString replacement)
531 {
532 return invokeObjcSelf!(NSString, "stringByReplacingCharactersInRange:withString:", NSRange, NSString)(range, replacement);
533 }
534
535 char* UTF8String ()
536 {
537 return invokeObjcSelf!(char*, "UTF8String");
538 }
539
540 static uint defaultCStringEncoding ()
541 {
542 return invokeObjcSelfClass!(uint, "defaultCStringEncoding");
543 }
544
545 static NSStringEncoding* availableStringEncodings ()
546 {
547 return invokeObjcSelfClass!(NSStringEncoding*, "availableStringEncodings");
548 }
549
550 static NSString localizedNameOfStringEncoding (uint encoding)
551 {
552 return invokeObjcSelfClass!(NSString, "localizedNameOfStringEncoding:", uint)(encoding);
553 }
554
555 Object init ()
556 {
557 return invokeObjcSelf!(Object, "init");
558 }
559
560 this ()
561 {
562 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
563 id result = Bridge.invokeObjcMethod!(id, "init")(objcObject);
564
565 if (result)
566 objcObject = ret;
567
568 dObject = this;
569 }
570
571 Object initWithCharactersNoCopy (unichar* characters, NSUInteger length, bool freeBuffer)
572 {
573 return invokeObjcSelf!(Object, "initWithCharactersNoCopy:length:freeWhenDone:", unichar*, NSUInteger, bool)(characters, length, freeBuffer);
574 }
575
576 this (unichar* characters, NSUInteger length, bool freeBuffer)
577 {
578 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
579 id result = Bridge.invokeObjcMethod!(id, "initWithCharactersNoCopy:length:freeWhenDone:", unichar*, NSUInteger, bool)(objcObject, characters, length, freeBuffer);
580
581 if (result)
582 objcObject = ret;
583
584 dObject = this;
585 }
586
587 Object initWithCharacters (unichar* characters, NSUInteger length)
588 {
589 return invokeObjcSelf!(Object, "initWithCharacters:length:", unichar*, NSUInteger)(characters, length);
590 }
591
592 this (unichar* characters, NSUInteger length)
593 {
594 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
595 id result = Bridge.invokeObjcMethod!(id, "initWithCharacters:length:", unichar*, NSUInteger)(objcObject, characters, length);
596
597 if (result)
598 objcObject = ret;
599
600 dObject = this;
601 }
602
603 Object initWithUTF8String (char* nullTerminatedCString)
604 {
605 return invokeObjcSelf!(Object, "initWithUTF8String:", char*)(nullTerminatedCString);
606 }
607
608 this (char* nullTerminatedCString)
609 {
610 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
611 id result = Bridge.invokeObjcMethod!(id, "initWithUTF8String:", char*)(objcObject, nullTerminatedCString);
612
613 if (result)
614 objcObject = ret;
615
616 dObject = this;
617 }
618
619 Object initWithString (NSString aString)
620 {
621 return invokeObjcSelf!(Object, "initWithString:", NSString)(aString);
622 }
623
624 this (NSString aString)
625 {
626 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
627 id result = Bridge.invokeObjcMethod!(id, "initWithString:", NSString)(objcObject, aString);
628
629 if (result)
630 objcObject = ret;
631
632 dObject = this;
633 }
634
635 Object initWithFormat (NSString initWithFormat, ...)
636 {
637 return invokeObjcSelf!(Object, "initWithFormat:", NSString)(initWithFormat);
638 }
639
640 this (NSString initWithFormat, ...)
641 {
642 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
643 id result = Bridge.invokeObjcMethod!(id, "initWithFormat:", NSString)(objcObject, initWithFormat);
644
645 if (result)
646 objcObject = ret;
647
648 dObject = this;
649 }
650
651 Object initWithFormat (NSString format, char* argList)
652 {
653 return invokeObjcSelf!(Object, "initWithFormat:arguments:", NSString, char*)(format, argList);
654 }
655
656 this (NSString format, char* argList)
657 {
658 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
659 id result = Bridge.invokeObjcMethod!(id, "initWithFormat:arguments:", NSString, char*)(objcObject, format, argList);
660
661 if (result)
662 objcObject = ret;
663
664 dObject = this;
665 }
666
667 Object initWithFormat (NSString format, Object locale, ...)
668 {
669 return invokeObjcSelf!(Object, "initWithFormat:locale:", NSString, Object)(format, locale);
670 }
671
672 this (NSString format, Object locale, ...)
673 {
674 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
675 id result = Bridge.invokeObjcMethod!(id, "initWithFormat:locale:", NSString, Object)(objcObject, format, locale);
676
677 if (result)
678 objcObject = ret;
679
680 dObject = this;
681 }
682
683 Object initWithFormat (NSString format, Object locale, char* argList)
684 {
685 return invokeObjcSelf!(Object, "initWithFormat:locale:arguments:", NSString, Object, char*)(format, locale, argList);
686 }
687
688 this (NSString format, Object locale, char* argList)
689 {
690 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
691 id result = Bridge.invokeObjcMethod!(id, "initWithFormat:locale:arguments:", NSString, Object, char*)(objcObject, format, locale, argList);
692
693 if (result)
694 objcObject = ret;
695
696 dObject = this;
697 }
698
699 Object initWithData (NSData data, uint encoding)
700 {
701 return invokeObjcSelf!(Object, "initWithData:encoding:", NSData, uint)(data, encoding);
702 }
703
704 this (NSData data, uint encoding)
705 {
706 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
707 id result = Bridge.invokeObjcMethod!(id, "initWithData:encoding:", NSData, uint)(objcObject, data, encoding);
708
709 if (result)
710 objcObject = ret;
711
712 dObject = this;
713 }
714
715 Object initWithBytes (void* bytes, NSUInteger len, uint encoding)
716 {
717 return invokeObjcSelf!(Object, "initWithBytes:length:encoding:", void*, NSUInteger, uint)(bytes, len, encoding);
718 }
719
720 this (void* bytes, NSUInteger len, uint encoding)
721 {
722 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
723 id result = Bridge.invokeObjcMethod!(id, "initWithBytes:length:encoding:", void*, NSUInteger, uint)(objcObject, bytes, len, encoding);
724
725 if (result)
726 objcObject = ret;
727
728 dObject = this;
729 }
730
731 Object initWithBytesNoCopy (void* bytes, NSUInteger len, uint encoding, bool freeBuffer)
732 {
733 return invokeObjcSelf!(Object, "initWithBytesNoCopy:length:encoding:freeWhenDone:", void*, NSUInteger, uint, bool)(bytes, len, encoding, freeBuffer);
734 }
735
736 this (void* bytes, NSUInteger len, uint encoding, bool freeBuffer)
737 {
738 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
739 id result = Bridge.invokeObjcMethod!(id, "initWithBytesNoCopy:length:encoding:freeWhenDone:", void*, NSUInteger, uint, bool)(objcObject, bytes, len, encoding, freeBuffer);
740
741 if (result)
742 objcObject = ret;
743
744 dObject = this;
745 }
746
747 static Object string ()
748 {
749 return invokeObjcSelfClass!(Object, "string");
750 }
751
752 static Object stringWithString (NSString string)
753 {
754 return invokeObjcSelfClass!(Object, "stringWithString:", NSString)(string);
755 }
756
757 static Object stringWithCharacters (unichar* characters, NSUInteger length)
758 {
759 return invokeObjcSelfClass!(Object, "stringWithCharacters:length:", unichar*, NSUInteger)(characters, length);
760 }
761
762 static Object stringWithUTF8String (char* nullTerminatedCString)
763 {
764 return invokeObjcSelfClass!(Object, "stringWithUTF8String:", char*)(nullTerminatedCString);
765 }
766
767 static Object stringWithFormat (NSString stringWithFormat, ...)
768 {
769 return invokeObjcSelfClass!(Object, "stringWithFormat:", NSString)(stringWithFormat);
770 }
771
772 static Object localizedStringWithFormat (NSString localizedStringWithFormat, ...)
773 {
774 return invokeObjcSelfClass!(Object, "localizedStringWithFormat:", NSString)(localizedStringWithFormat);
775 }
776
777 Object initWithCString (char* nullTerminatedCString, uint encoding)
778 {
779 return invokeObjcSelf!(Object, "initWithCString:encoding:", char*, uint)(nullTerminatedCString, encoding);
780 }
781
782 this (char* nullTerminatedCString, uint encoding)
783 {
784 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
785 id result = Bridge.invokeObjcMethod!(id, "initWithCString:encoding:", char*, uint)(objcObject, nullTerminatedCString, encoding);
786
787 if (result)
788 objcObject = ret;
789
790 dObject = this;
791 }
792
793 static Object stringWithCString (char* cString, uint enc)
794 {
795 return invokeObjcSelfClass!(Object, "stringWithCString:encoding:", char*, uint)(cString, enc);
796 }
797
798 Object initWithContentsOfURL (NSURL url, uint enc, NSError** error)
799 {
800 return invokeObjcSelf!(Object, "initWithContentsOfURL:encoding:error:", NSURL, uint, NSError**)(url, enc, error);
801 }
802
803 this (NSURL url, uint enc, NSError** error)
804 {
805 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
806 id result = Bridge.invokeObjcMethod!(id, "initWithContentsOfURL:encoding:error:", NSURL, uint, NSError**)(objcObject, url, enc, error);
807
808 if (result)
809 objcObject = ret;
810
811 dObject = this;
812 }
813
814 Object initWithContentsOfFile (NSString path, uint enc, NSError** error)
815 {
816 return invokeObjcSelf!(Object, "initWithContentsOfFile:encoding:error:", NSString, uint, NSError**)(path, enc, error);
817 }
818
819 this (NSString path, uint enc, NSError** error)
820 {
821 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
822 id result = Bridge.invokeObjcMethod!(id, "initWithContentsOfFile:encoding:error:", NSString, uint, NSError**)(objcObject, path, enc, error);
823
824 if (result)
825 objcObject = ret;
826
827 dObject = this;
828 }
829
830 static Object stringWithContentsOfURL (NSURL url, uint enc, NSError** error)
831 {
832 return invokeObjcSelfClass!(Object, "stringWithContentsOfURL:encoding:error:", NSURL, uint, NSError**)(url, enc, error);
833 }
834
835 static Object stringWithContentsOfFile (NSString path, uint enc, NSError** error)
836 {
837 return invokeObjcSelfClass!(Object, "stringWithContentsOfFile:encoding:error:", NSString, uint, NSError**)(path, enc, error);
838 }
839
840 Object initWithContentsOfURL (NSURL url, NSStringEncoding* enc, NSError** error)
841 {
842 return invokeObjcSelf!(Object, "initWithContentsOfURL:usedEncoding:error:", NSURL, NSStringEncoding*, NSError**)(url, enc, error);
843 }
844
845 this (NSURL url, NSStringEncoding* enc, NSError** error)
846 {
847 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
848 id result = Bridge.invokeObjcMethod!(id, "initWithContentsOfURL:usedEncoding:error:", NSURL, NSStringEncoding*, NSError**)(objcObject, url, enc, error);
849
850 if (result)
851 objcObject = ret;
852
853 dObject = this;
854 }
855
856 Object initWithContentsOfFile (NSString path, NSStringEncoding* enc, NSError** error)
857 {
858 return invokeObjcSelf!(Object, "initWithContentsOfFile:usedEncoding:error:", NSString, NSStringEncoding*, NSError**)(path, enc, error);
859 }
860
861 this (NSString path, NSStringEncoding* enc, NSError** error)
862 {
863 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
864 id result = Bridge.invokeObjcMethod!(id, "initWithContentsOfFile:usedEncoding:error:", NSString, NSStringEncoding*, NSError**)(objcObject, path, enc, error);
865
866 if (result)
867 objcObject = ret;
868
869 dObject = this;
870 }
871
872 static Object stringWithContentsOfURL (NSURL url, NSStringEncoding* enc, NSError** error)
873 {
874 return invokeObjcSelfClass!(Object, "stringWithContentsOfURL:usedEncoding:error:", NSURL, NSStringEncoding*, NSError**)(url, enc, error);
875 }
876
877 static Object stringWithContentsOfFile (NSString path, NSStringEncoding* enc, NSError** error)
878 {
879 return invokeObjcSelfClass!(Object, "stringWithContentsOfFile:usedEncoding:error:", NSString, NSStringEncoding*, NSError**)(path, enc, error);
880 }
881
882 bool writeToURL (NSURL url, bool useAuxiliaryFile, uint enc, NSError** error)
883 {
884 return invokeObjcSelf!(bool, "writeToURL:atomically:encoding:error:", NSURL, bool, uint, NSError**)(url, useAuxiliaryFile, enc, error);
885 }
886
887 bool writeToFile (NSString path, bool useAuxiliaryFile, uint enc, NSError** error)
888 {
889 return invokeObjcSelf!(bool, "writeToFile:atomically:encoding:error:", NSString, bool, uint, NSError**)(path, useAuxiliaryFile, enc, error);
890 }
891 }
892
893 template TNSStringDeprecated ()
894 {
895 char* cString ()
896 {
897 return invokeObjcSelf!(char*, "cString");
898 }
899
900 char* lossyCString ()
901 {
902 return invokeObjcSelf!(char*, "lossyCString");
903 }
904
905 NSUInteger cStringLength ()
906 {
907 return invokeObjcSelf!(NSUInteger, "cStringLength");
908 }
909
910 void getCString (char* bytes)
911 {
912 return invokeObjcSelf!(void, "getCString:", char*)(bytes);
913 }
914
915 void getCString (char* bytes, NSUInteger maxLength)
916 {
917 return invokeObjcSelf!(void, "getCString:maxLength:", char*, NSUInteger)(bytes, maxLength);
918 }
919
920 void getCString (char* bytes, NSUInteger maxLength, NSRange aRange, NSRangePointer leftoverRange)
921 {
922 return invokeObjcSelf!(void, "getCString:maxLength:range:remainingRange:", char*, NSUInteger, NSRange, NSRangePointer)(bytes, maxLength, aRange, leftoverRange);
923 }
924
925 bool writeToFile (NSString path, bool useAuxiliaryFile)
926 {
927 return invokeObjcSelf!(bool, "writeToFile:atomically:", NSString, bool)(path, useAuxiliaryFile);
928 }
929
930 bool writeToURL (NSURL url, bool atomically)
931 {
932 return invokeObjcSelf!(bool, "writeToURL:atomically:", NSURL, bool)(url, atomically);
933 }
934
935 Object initWithContentsOfFile (NSString path)
936 {
937 return invokeObjcSelf!(Object, "initWithContentsOfFile:", NSString)(path);
938 }
939
940 this (NSString path)
941 {
942 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
943 id result = Bridge.invokeObjcMethod!(id, "initWithContentsOfFile:", NSString)(objcObject, path);
944
945 if (result)
946 objcObject = ret;
947
948 dObject = this;
949 }
950
951 Object initWithContentsOfURL (NSURL url)
952 {
953 return invokeObjcSelf!(Object, "initWithContentsOfURL:", NSURL)(url);
954 }
955
956 this (NSURL url)
957 {
958 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
959 id result = Bridge.invokeObjcMethod!(id, "initWithContentsOfURL:", NSURL)(objcObject, url);
960
961 if (result)
962 objcObject = ret;
963
964 dObject = this;
965 }
966
967 static Object stringWithContentsOfFile (NSString path)
968 {
969 return invokeObjcSelfClass!(Object, "stringWithContentsOfFile:", NSString)(path);
970 }
971
972 static Object stringWithContentsOfURL (NSURL url)
973 {
974 return invokeObjcSelfClass!(Object, "stringWithContentsOfURL:", NSURL)(url);
975 }
976
977 Object initWithCStringNoCopy (char* bytes, NSUInteger length, bool freeBuffer)
978 {
979 return invokeObjcSelf!(Object, "initWithCStringNoCopy:length:freeWhenDone:", char*, NSUInteger, bool)(bytes, length, freeBuffer);
980 }
981
982 this (char* bytes, NSUInteger length, bool freeBuffer)
983 {
984 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
985 id result = Bridge.invokeObjcMethod!(id, "initWithCStringNoCopy:length:freeWhenDone:", char*, NSUInteger, bool)(objcObject, bytes, length, freeBuffer);
986
987 if (result)
988 objcObject = ret;
989
990 dObject = this;
991 }
992
993 Object initWithCString (char* bytes, NSUInteger length)
994 {
995 return invokeObjcSelf!(Object, "initWithCString:length:", char*, NSUInteger)(bytes, length);
996 }
997
998 this (char* bytes, NSUInteger length)
999 {
1000 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
1001 id result = Bridge.invokeObjcMethod!(id, "initWithCString:length:", char*, NSUInteger)(objcObject, bytes, length);
1002
1003 if (result)
1004 objcObject = ret;
1005
1006 dObject = this;
1007 }
1008
1009 Object initWithCString (char* bytes)
1010 {
1011 return invokeObjcSelf!(Object, "initWithCString:", char*)(bytes);
1012 }
1013
1014 this (char* bytes)
1015 {
1016 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
1017 id result = Bridge.invokeObjcMethod!(id, "initWithCString:", char*)(objcObject, bytes);
1018
1019 if (result)
1020 objcObject = ret;
1021
1022 dObject = this;
1023 }
1024
1025 static Object stringWithCString (char* bytes, NSUInteger length)
1026 {
1027 return invokeObjcSelfClass!(Object, "stringWithCString:length:", char*, NSUInteger)(bytes, length);
1028 }
1029
1030 static Object stringWithCString (char* bytes)
1031 {
1032 return invokeObjcSelfClass!(Object, "stringWithCString:", char*)(bytes);
1033 }
1034 }
1035