Когда вы выполняете char *myChar = "Something";
, вы создаете литеральный литерал только для чтения где-то в памяти, который заканчивается нулевым символом. Теперь это что-то особенное с компилятором, что он интерпретирует кусок переменных «char», которые хранятся непрерывно и заканчиваются нулевым символом в виде строки. Таким образом, в основном вы создали массив символов, а когда вы делаете *myChar*
, он возвращает строку.
В случае целых чисел или любых других типов данных он различает int *ptr
как указатель на целое число и int ptr
как целое число. Вероятно, вы получаете ошибку, потому что введенный вами адрес может быть недействительным / доступным для вас.
Также, делая
char myChar = "Something"; //this is an error, since char can hold one character
char *charAddr = &myChar;
Обратите внимание, что myChar
и &myChar
то же, поскольку myChar
является указателем!
Редактирование: см. здесь о строковых литералах: Возможно ли изменить строку символа в C?
Один из способов достижения вашей цели - это подкласс UIpageControl
и переопределить свойство accessibiliTraits
следующим образом:
class MyPageControl: UIPageControl {
override var accessibilityTraits: UIAccessibilityTraits {
get{
return .none
}
set{}
}
}
Определить свой элемент pageControl как MyPageControl
, чтобы получить желаемый результат.