如何在Codename One本地接口中实现NSLog?

时间:2017-11-16 19:59:49

标签: ios codenameone

我阅读并遵循Codename One手册的高级主题section on Native Interfaces中的说明。我想将Strings传递给我的界面,以便我可以在我的应用程序的iOS版本中记录事件,但是我无法看到我的日志。

这是我的代码:

InterfaceLogger interfaceLogger = NativeLookup.create(InterfaceLogger.class);
if (interfaceLogger != null && interfaceLogger.isSupported()) {
            interfaceLogger.logThis("hello!");
}

以下是我在native文件夹中的iOS实施代码:

.h文件:

#import <Foundation/Foundation.h>

@interface org_myapp_app_cn1_InterfaceLoggerImpl : NSObject {
}

-(void)logThis:(NSString*)param;
-(BOOL)isSupported;
@end

**

.m文件:

#import "org_myapp_app_cn1_InterfaceLoggerImpl.h"

@implementation org_myapp_app_cn1_InterfaceLoggerImpl

-(void)logThis:(NSString*)param{
    NSLog(@"%@", param);
}

-(BOOL)isSupported{
    return YES;
}

@end

请帮忙。

感谢。

1 个答案:

答案 0 :(得分:1)

由于Log.p()已在内部调用NSLogprintf,我不确定您为什么需要这样做。 Apple改变了日志版本在最近版本中回应的方式,并且在针对多个设备生成时跟踪所有内容时变得有点混乱,因此NSLog不再适用于任何地方。

你所做的代码就好了,你看不到NSLog输出的原因是因为Apple。您可以在此处查看我们的内部问题:https://github.com/codenameone/CodenameOne/issues/2166