Инициализируйте NSMutableArray: [Массив NSMutableArray];

Другой способ, который я не очень рекомендую, - следовать этому направлению:

https://wordpress.org/support/topic/exec-php-to-work-in -php-7-needs-this /

Это в основном обновление самого плагина, который, безусловно, будет перезаписан при следующем обновлении.

Этот плагин требует ряда изменений для работы с php 7.

В exec-php.php

$GLOBALS[‘g_execphp_manager’] =& new ExecPhp_Manager();

должно быть изменено на

$GLOBALS[‘g_execphp_manager’] = new ExecPhp_Manager();

В include / manager.php из строки 36 change каждому = & amp; to =

In включает / admin.php строки 53,56,57,63,64,79 change = & amp; to =

In включает / cache.php строку 22,39 change = & amp; to =

In включает в себя / ajax.php строку 64 change = & amp; к =

7
задан Corey Floyd 9 May 2009 в 22:16
поделиться

2 ответа

Если вы инициализируете его с помощью:

NSMutableArray *array = [NSMutableArray array];

, вы получите NSMutableArray. Одна замечательная особенность Objective-C заключается в том, что методы класса наследуются подклассами.

Итак, в методе класса вы можете сделать что-то вроде этого:

+(id)array {
    return [[[self alloc] init] autorelease];
}

и self будут ссылаться на объект класса. где выполняется код ( NSArray или NSMutableArray ).

11
ответ дан 6 December 2019 в 14:09
поделиться

Обновление: Хотя мой совет «проверить это самостоятельно», как правило, является хорошей идеей, в данном случае он был немного удачным. Спасибо Джиму в комментариях за указание на то, что мое предложение ниже не работает для этих классов, потому что все различные формы NSArray реализуются с помощью класса бесплатного моста CoreFoundation.

----- Исходный ответ Для контекста ниже -----

Самый простой способ ответить на такой вопрос - это проверить его самостоятельно. Попробуйте выделить массив так, как вам было интересно, затем NSLog из вашего кода:

NSLog (@ "У нас есть% @", NSStringFromClass ([theArray class]));

4
ответ дан 6 December 2019 в 14:09
поделиться