#import <Foundation/Foundation.h>
typedef const char* MyBlock(const char* callback, const char* data);
const char* TestBlock(MyBlock blk){
char *tt = "222";
blk(tt,tt);
return tt;
}
const char* Hello(const char* callback, const char* data)
{
char *tt = "he6666666666llo";
printf("%s\n",tt);
return NULL;
}
@interface TestClass:NSObject
-(void)Show:(NSString*)argv;
@end
@implementation TestClass
-(void)Show:(NSString*)argv
{
printf("string %s\n",[argv UTF8String]);
}
@end
@interface T1Class:TestClass
-(void)Show:(int)argv a2:(NSString*)argv2;
@end
@implementation T1Class
-(void)Show:(int)argv a2:(NSString*)argv2
{
printf("v1 int: %d\n",argv);
printf("v2int: %s\n",[argv2 UTF8String]);
}
@end
int main(int argc, char* argv[]) {
NSString * str=@"Hello JSRUN -from objc\n";
printf("%s\n",[str UTF8String]);
TestBlock(Hello);
TestClass* tc = [TestClass new];
[tc Show:@"hello"];
TestClass* tc1 = [T1Class new];
[tc1 Show:123 a2:@"hello2"];
NSDictionary* callbackDic = [NSDictionary dictionaryWithObjectsAndKeys:
@"http://url.com", @"url",
@"webRequest", @"callback", nil];
NSError *error1;
NSData *jsonData1 = [NSJSONSerialization dataWithJSONObject:callbackDic options:0 error:&error1];
NSString *jsonString = [[NSString alloc] initWithData:jsonData1 encoding:NSUTF8StringEncoding];
printf("json str: %s\n",[jsonString UTF8String]);
char* data = [jsonString cStringUsingEncoding:NSASCIIStringEncoding];
NSError *error;
NSString *jsonStr = [[NSString alloc] initWithUTF8String:data];
NSData* jsonData = [jsonStr dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary* resultDic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
if (error)
{
NSLog(@"json解析失败:%@",error);
return 0;
}
NSString *url = [resultDic valueForKey:@"url"];
printf("json: %s\n", [url UTF8String]);
return 0;
}