Skip to content

Commit f70162c

Browse files
Fix some methods that have variable arguments.
1 parent c4adb94 commit f70162c

18 files changed

Lines changed: 324 additions & 46 deletions
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//
2+
// NSMutableString+JavaScriptBridge.h
3+
// JavaScriptBridge
4+
//
5+
// Created by kishikawa katsumi on 2014/02/06.
6+
// Copyright (c) 2014 kishikawa katsumi. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
11+
@interface NSMutableString (JavaScriptBridge)
12+
13+
@end
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
//
2+
// NSMutableString+JavaScriptBridge.m
3+
// JavaScriptBridge
4+
//
5+
// Created by kishikawa katsumi on 2014/02/06.
6+
// Copyright (c) 2014 kishikawa katsumi. All rights reserved.
7+
//
8+
9+
#import "NSMutableString+JavaScriptBridge.h"
10+
#import "JSBMessageForwarding.h"
11+
12+
@implementation NSMutableString (JavaScriptBridge)
13+
14+
- (void)__appendFormat:(NSString *)format arguments:(NSArray *)arguments
15+
{
16+
__unsafe_unretained id *argList = createVariableArgumentListsFromArray(arguments);
17+
[self appendFormat:format, *argList];
18+
free(argList);
19+
}
20+
21+
@end
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//
2+
// NSString+JavaScriptBridge.h
3+
// JavaScriptBridge
4+
//
5+
// Created by kishikawa katsumi on 2014/02/06.
6+
// Copyright (c) 2014 kishikawa katsumi. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
11+
@interface NSString (JavaScriptBridge)
12+
13+
@end
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
//
2+
// NSString+JavaScriptBridge.m
3+
// JavaScriptBridge
4+
//
5+
// Created by kishikawa katsumi on 2014/02/06.
6+
// Copyright (c) 2014 kishikawa katsumi. All rights reserved.
7+
//
8+
9+
#import "NSString+JavaScriptBridge.h"
10+
#import "JSBMessageForwarding.h"
11+
12+
@implementation NSString (JavaScriptBridge)
13+
14+
+ (instancetype)__stringWithFormat:(NSString *)format arguments:(NSArray *)arguments
15+
{
16+
__unsafe_unretained id *argList = createVariableArgumentListsFromArray(arguments);
17+
NSString *result = [self stringWithFormat:format, *argList];
18+
free(argList);
19+
20+
return result;
21+
}
22+
23+
+ (instancetype)__localizedStringWithFormat:(NSString *)format arguments:(NSArray *)arguments
24+
{
25+
__unsafe_unretained id *argList = createVariableArgumentListsFromArray(arguments);
26+
NSString *result = [self localizedStringWithFormat:format, *argList];
27+
free(argList);
28+
29+
return result;
30+
}
31+
32+
- (NSString *)__stringByAppendingFormat:(NSString *)format arguments:(NSArray *)arguments
33+
{
34+
__unsafe_unretained id *argList = createVariableArgumentListsFromArray(arguments);
35+
NSString *result = [self stringByAppendingFormat:format, *argList];
36+
free(argList);
37+
38+
return result;
39+
}
40+
41+
- (instancetype)__initWithFormat:(NSString *)format arguments:(NSArray *)arguments
42+
{
43+
__unsafe_unretained id *argList = createVariableArgumentListsFromArray(arguments);
44+
NSString *result = [self initWithFormat:format, *argList];
45+
free(argList);
46+
47+
return result;
48+
}
49+
50+
- (instancetype)__initWithFormat:(NSString *)format locale:(id)locale arguments:(NSArray *)arguments
51+
{
52+
__unsafe_unretained id *argList = createVariableArgumentListsFromArray(arguments);
53+
NSString *result = [self initWithFormat:format locale:locale, *argList];
54+
free(argList);
55+
56+
return result;
57+
}
58+
59+
@end
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//
2+
// UIActionSheet+JavaScriptBridge.h
3+
// JavaScriptBridge
4+
//
5+
// Created by kishikawa katsumi on 2014/02/06.
6+
// Copyright (c) 2014 kishikawa katsumi. All rights reserved.
7+
//
8+
9+
#import <UIKit/UIKit.h>
10+
11+
@interface UIActionSheet (JavaScriptBridge)
12+
13+
@end
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//
2+
// UIActionSheet+JavaScriptBridge.m
3+
// JavaScriptBridge
4+
//
5+
// Created by kishikawa katsumi on 2014/02/06.
6+
// Copyright (c) 2014 kishikawa katsumi. All rights reserved.
7+
//
8+
9+
#import "UIActionSheet+JavaScriptBridge.h"
10+
11+
@implementation UIActionSheet (JavaScriptBridge)
12+
13+
- (id)__initWithTitle:(NSString *)title delegate:(id <UIActionSheetDelegate>)delegate cancelButtonTitle:(NSString *)cancelButtonTitle destructiveButtonTitle:(NSString *)destructiveButtonTitle otherButtonTitles:(NSArray *)otherButtonTitles
14+
{
15+
self = [self initWithTitle:title delegate:delegate cancelButtonTitle:cancelButtonTitle destructiveButtonTitle:destructiveButtonTitle otherButtonTitles:nil];
16+
[otherButtonTitles enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
17+
[self addButtonWithTitle:obj];
18+
}];
19+
20+
return self;
21+
}
22+
23+
@end
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//
2+
// UIAlertView+JavaScriptBridge.h
3+
// JavaScriptBridge
4+
//
5+
// Created by kishikawa katsumi on 2014/02/06.
6+
// Copyright (c) 2014 kishikawa katsumi. All rights reserved.
7+
//
8+
9+
#import <UIKit/UIKit.h>
10+
11+
@interface UIAlertView (JavaScriptBridge)
12+
13+
@end
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//
2+
// UIAlertView+JavaScriptBridge.m
3+
// JavaScriptBridge
4+
//
5+
// Created by kishikawa katsumi on 2014/02/06.
6+
// Copyright (c) 2014 kishikawa katsumi. All rights reserved.
7+
//
8+
9+
#import "UIAlertView+JavaScriptBridge.h"
10+
11+
@implementation UIAlertView (JavaScriptBridge)
12+
13+
- (id)__initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSArray *)otherButtonTitles
14+
{
15+
self = [self initWithTitle:title message:message delegate:delegate cancelButtonTitle:cancelButtonTitle otherButtonTitles:nil];
16+
[otherButtonTitles enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
17+
[self addButtonWithTitle:obj];
18+
}];
19+
20+
return self;
21+
}
22+
23+
@end

Classes/iOS/FrameworkSupport/Foundation/JSBNSMutableString.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;
2020
- (void)deleteCharactersInRange:(NSRange)range;
2121
- (void)appendString:(NSString *)aString;
22-
- (void)appendFormat:(NSString *)format , ...;
22+
JSExportAs(appendFormat,
23+
- (void)__appendFormat:(NSString *)format arguments:(NSArray *)arguments);
2324
- (void)setString:(NSString *)aString;
2425
- (id)initWithCapacity:(NSUInteger)capacity;
2526
- (NSUInteger)replaceOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)options range:(NSRange)searchRange;

Classes/iOS/FrameworkSupport/Foundation/JSBNSString.h

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@
3636
+ (instancetype)stringWithString:(NSString *)string;
3737
+ (instancetype)stringWithCharacters:(const unichar *)characters length:(NSUInteger)length;
3838
+ (instancetype)stringWithUTF8String:(const char *)nullTerminatedCString;
39-
+ (instancetype)stringWithFormat:(NSString *)format , ...;
40-
+ (instancetype)localizedStringWithFormat:(NSString *)format , ...;
39+
JSExportAs(stringWithFormat,
40+
+ (instancetype)__stringWithFormat:(NSString *)format arguments:(NSArray *)arguments);
41+
JSExportAs(localizedStringWithFormat,
42+
+ (instancetype)__localizedStringWithFormat:(NSString *)format arguments:(NSArray *)arguments);
4143
+ (instancetype)stringWithCString:(const char *)cString encoding:(NSStringEncoding)enc;
4244
+ (instancetype)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error;
4345
+ (instancetype)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;
@@ -98,7 +100,8 @@
98100
- (NSRange)rangeOfComposedCharacterSequenceAtIndex:(NSUInteger)index;
99101
- (NSRange)rangeOfComposedCharacterSequencesForRange:(NSRange)range;
100102
- (NSString *)stringByAppendingString:(NSString *)aString;
101-
- (NSString *)stringByAppendingFormat:(NSString *)format , ...;
103+
JSExportAs(stringByAppendingFormat,
104+
- (NSString *)__stringByAppendingFormat:(NSString *)format arguments:(NSArray *)arguments);
102105
- (double)doubleValue;
103106
- (float)floatValue;
104107
- (int)intValue;
@@ -148,9 +151,10 @@
148151
- (instancetype)initWithCharacters:(const unichar *)characters length:(NSUInteger)length;
149152
- (instancetype)initWithUTF8String:(const char *)nullTerminatedCString;
150153
- (instancetype)initWithString:(NSString *)aString;
151-
- (instancetype)initWithFormat:(NSString *)format , ...;
152-
- (instancetype)initWithFormat:(NSString *)format arguments:(va_list)argList;
153-
- (instancetype)initWithFormat:(NSString *)format locale:(id)locale , ...;
154+
JSExportAs(initWithFormat,
155+
- (instancetype)__initWithFormat:(NSString *)format arguments:(NSArray *)arguments);
156+
JSExportAs(initWithFormatLocale,
157+
- (instancetype)__initWithFormat:(NSString *)format locale:(id)locale arguments:(NSArray *)arguments);
154158
- (instancetype)initWithFormat:(NSString *)format locale:(id)locale arguments:(va_list)argList;
155159
- (instancetype)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding;
156160
- (instancetype)initWithBytes:(const void *)bytes length:(NSUInteger)len encoding:(NSStringEncoding)encoding;
@@ -162,14 +166,6 @@
162166
- (instancetype)initWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error;
163167
- (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error;
164168
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error;
165-
- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;
166-
- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;
167-
- (void)deleteCharactersInRange:(NSRange)range;
168-
- (void)appendString:(NSString *)aString;
169-
- (void)appendFormat:(NSString *)format , ...;
170-
- (void)setString:(NSString *)aString;
171-
- (id)initWithCapacity:(NSUInteger)capacity;
172-
- (NSUInteger)replaceOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)options range:(NSRange)searchRange;
173169
- (id)propertyList;
174170
- (NSDictionary *)propertyListFromStringsFileFormat;
175171
- (const char *)cString;

0 commit comments

Comments
 (0)