Я написал функцию дампа, которая в основном печатает публичные элементы объекта, если она не переопределила toString (). Его можно было легко расширить, чтобы вызвать геттеры. Javadoc:
Сбрасывает данный объект в System.out, используя следующие правила:
Если объект Iterable, все его компоненты сбрасываются. Если Объект или один из его суперклассов переопределяет toString (), «toString» сбрасывается . Else метод вызывается рекурсивно для всех открытых элементов Object blockquote>/** * Dumps an given Object to System.out, using the following rules:<br> * <ul> * <li> If the Object is {@link Iterable}, all of its components are dumped.</li> * <li> If the Object or one of its superclasses overrides {@link #toString()}, the "toString" is dumped</li> * <li> Else the method is called recursively for all public members of the Object </li> * </ul> * @param input * @throws Exception */ public static void dump(Object input) throws Exception{ dump(input, 0); } private static void dump(Object input, int depth) throws Exception{ if(input==null){ System.out.print("null\n"+indent(depth)); return; } Class<? extends Object> clazz = input.getClass(); System.out.print(clazz.getSimpleName()+" "); if(input instanceof Iterable<?>){ for(Object o: ((Iterable<?>)input)){ System.out.print("\n"+indent(depth+1)); dump(o, depth+1); } }else if(clazz.getMethod("toString").getDeclaringClass().equals(Object.class)){ Field[] fields = clazz.getFields(); if(fields.length == 0){ System.out.print(input+"\n"+indent(depth)); } System.out.print("\n"+indent(depth+1)); for(Field field: fields){ Object o = field.get(input); String s = "|- "+field.getName()+": "; System.out.print(s); dump(o, depth+1); } }else{ System.out.print(input+"\n"+indent(depth)); } } private static String indent(int depth) { StringBuilder sb = new StringBuilder(); for(int i=0; i<depth; i++) sb.append(" "); return sb.toString(); }
Получите доступ к viewController
, где находится ваша сцена, т.е. если ваша gameScene находится в viewController с именем gameViewController
:
let vc = gameViewController()
vc.view.isPaused = true
или
vc.GameScene.view.isPaused = true