Присвоение делает указатель из целого числа без приведения: проблема адреса - PullRequest
0 голосов
/ 24 мая 2011

Я хочу адрес для каждого графического компонента, который я пишу, чтобы я мог отработать его позже, так как это большая матрица, и я не хочу делать: "for(UIView *myView in [self.view subviews]){". <- слишком медленно для связи, и часто я не получаю то, что хочу. </p>

Однако я могу получить желаемый результат, сохранив адрес и установив для него адрес указателя, но я получаю предупреждение:

UIView *myView = [[UIView alloc] initWithFrame:RectFrame];
address[j][i] = (int) myView;
myView = address[j][i];   //  <---Assignment makes pointer from integer without a cast

Хорошо, поэтому я пытаюсь разыграть его с (UIView) и получить ...

UIView *myView = [[UIView alloc] initWithFrame:RectFrame];
address[j][i] = (int) myView;
myView = (UIView) address[j][i];  //  <---Conversion to non-scalar type requested

Так как мне умиротворить и снять предупреждение "ssignment делает указатель из целого числа без приведения" ??

Спасибо

Ответы [ 3 ]

1 голос
/ 24 мая 2011

Прежде всего: перебор, манипулирование и отрисовка 1000 UIViews, вероятно, будет неприемлемо медленным, независимо от того, как вы это делаете.И я держу пари, что «рисование» будет вашим узким местом, поэтому я сомневаюсь, что разница между итерациями по массиву subviews или массиву 2D C приведет к заметной разнице в скорости.

сказал, чтобы предупреждение исчезло, объявите ваш массив как массив (UIView *) указателей вместо int:

UIView *address[100][10];

Тогда вам не нужно нигде приводить типы.

0 голосов
/ 24 мая 2011

Я не могу понять, что вы делаете, но прямо к ответу, это должно быть

myView = (UIView *) address[j][i];
0 голосов
/ 24 мая 2011

Почему бы не использовать свойство Tag, тогда вы можете использовать [self viewWithTag: aTag];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...