Я не на 100% уверен в этом, но я думаю, что добавление представления к иерархии представления непосредственно означает звонить -addSubview:
на представлении контроллера представления (например, [viewController.view addSubview:anotherViewController.view]
) вместо того, чтобы продвинуть новый контроллер представления на стопку контроллера навигации.
Вам следует попробовать использовать следующие функции - getQualifiedClassName
и typeof
. Вот код, показывающий, как они ведут себя для разных типов данных, которые вы указали, особенно обратите внимание на разницу для массива и чисел:
Код:
var o = new Array();
trace ("var o = new Array()");
trace (getQualifiedClassName(o));
trace (typeof(o));
var o = new Object();
trace ("var o = new Object();");
trace (getQualifiedClassName(o));
trace (typeof(o));
var o = new String();
trace ("var o = new String()");
trace (getQualifiedClassName(o));
trace (typeof(o));
var o = new Number()
trace ("var o = new Number()");
trace (getQualifiedClassName(o));
trace (typeof(o));
var o = 3.14;
trace ("var o = 3.14");
trace (getQualifiedClassName(o));
trace (typeof(o));
Результат:
var o = new Array()
Array
object
var o = new Object();
Object
object
var o = new String()
String
string
var o = new Number()
int
number
var o = 3.14
Number
number
Я предполагаю, что getQualifiedClassName будет тем, что вы ищете , который находится в пакете утилит flash:
import flash.utils.getQualifiedClassName;
Попробуйте что-нибудь основанное на одном из эти:
if (variable.constructor.toString().match(/object/i) == 'Object')
if (variable.constructor.toString().indexOf("Object") != -1)
Если объект является Object (), строка конструктора будет иметь вид
function Object() { ... }
, так что вы можете это проверить.