Objective c / 如何将用户实现的静态函数调用到 nsstring class 中?
Objective c / How do I call a user-implemented static function into the nsstring class?
+ (NSString *)dictionaryToJson:(NSDictionary *)dic
{
NSString *result = @"";
NSError *err;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&err];
if(! jsonData) {
NSLog(@"Error: %@", err);
} else {
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
result = jsonString;
}
return result;
}
我们这里定义的函数是
[body appendData:[[NSString dictionaryToJson:jsonBody] dataUsingEncoding:NSUTF8StringEncoding]];
我认为你还没有理解来自 objc 的函数调用。请帮助我。
在这里,您通常会使用 类别 扩展 class。参见例如https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html
// Header file
// Something like NSString+JSONAdditions.h
@interface NSString (JSONAdditions)
+ (NSString *)dictionaryToJson:(NSDictionary *)dic;
@end
// Implementation file
// Something like NSString+JSONAdditions.m
@implementation NSString (JSONAdditions)
+ (NSString *)dictionaryToJson:(NSDictionary *)dic
{
NSString *result = @"";
NSError *err;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&err];
if(! jsonData) {
NSLog(@"Error: %@", err);
} else {
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
result = jsonString;
}
return result;
}
@end
现在您可以使用您提供的代码段中的代码了。 Xcode 中的 FWIW 使用
执行此操作
文件 -> 新建 -> 文件 ... -> Objective-C 文件
+ (NSString *)dictionaryToJson:(NSDictionary *)dic
{
NSString *result = @"";
NSError *err;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&err];
if(! jsonData) {
NSLog(@"Error: %@", err);
} else {
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
result = jsonString;
}
return result;
}
我们这里定义的函数是
[body appendData:[[NSString dictionaryToJson:jsonBody] dataUsingEncoding:NSUTF8StringEncoding]];
我认为你还没有理解来自 objc 的函数调用。请帮助我。
在这里,您通常会使用 类别 扩展 class。参见例如https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html
// Header file
// Something like NSString+JSONAdditions.h
@interface NSString (JSONAdditions)
+ (NSString *)dictionaryToJson:(NSDictionary *)dic;
@end
// Implementation file
// Something like NSString+JSONAdditions.m
@implementation NSString (JSONAdditions)
+ (NSString *)dictionaryToJson:(NSDictionary *)dic
{
NSString *result = @"";
NSError *err;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&err];
if(! jsonData) {
NSLog(@"Error: %@", err);
} else {
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
result = jsonString;
}
return result;
}
@end
现在您可以使用您提供的代码段中的代码了。 Xcode 中的 FWIW 使用
执行此操作文件 -> 新建 -> 文件 ... -> Objective-C 文件