Это для MonoTouch (Xamarin студия) IPad приложениеизображения Загрузка несколько раз MonoTouch/Xamarin Студия
У меня есть опрос, который предлагает пользователю смотреть на изображение и оценить его, есть 140 изображений, и они показано случайным образом. У меня есть эти изображения в папке и назвал их pic1.jpg, pic2.jpg, pic3.jpg и т. Д. В начале опроса я произвольно генерировал массив чисел от 1-140, убедившись, что у НЕ того же числа дважды (это проверено и работает ...). Затем я просматриваю массив и показываю изображения в случайном порядке.
После обновления iOS7 у меня возникают проблемы с неправильным изображением. Он будет отображаться несколько раз в одном тесте. Я отлаживал это, и это просто неправильный образ, который появляется, почти так же, как если бы изображение было заменено другим изображением ... Например, когда изображение 81 должно было показать изображение 94, действительно было. Это произошло 12 раз в 140 изображений ...
Вот код для рейтинга:
public override void ViewDidLoad()
{
int[] Num2 = new int[141]; //array for random numbers
int ic = 0; //int count
rand2(ref Num2); //routine to generate random numbers...
this.btnSEG.ValueChanged += delegate(object sender, EventArgs e){ //submit the rating
ic = ic + 1; //increase the count
imgSorce.Image.Dispose(); //clear the current image
using (var pool = new NSAutoreleasePool()) { //put this in to prevent leaks
this.imgSorce.Image = UIImage.FromFile ("image/pic" + Num2[ic] + ".jpg"); //display the next image
};
};
Я проверил все изображения в папке изображения, и нет никаких дубликатов.
Любые идеи, почему это происходит?
Обновлено
@Krumelur попросил код для генерации случайного нумерованного массива ... Вот он ...
private void rand2 (ref int[] rn)
{
int i = 0;
int icount = 0;
for (i = 0; i <= 139;)
{
int n = 0;
rand3(ref n);
for(icount = 0; icount <= 139;)
{
if (n == rn[icount])
{
icount = 141;
}
icount = icount + 1;
if (icount == 140)
{
rn[i] = n;
i = i+1;
}
}
};
rn[140] = 0;
}
А вот rand3, что было указано выше ...
private void rand3 (ref int num)
{
Random r = new Random();
num = r.Next(1, 141);
}
Просьба указать код для 'rand2()'. Вы также можете отлаживать себя и проверять конкуренцию «Num2» на наличие дубликатов, потому что я уверен, что это ваша проблема. – Krumelur
@ Krumelur, Хороший вопрос. Я обновил вопрос, включив этот код. Я должен упомянуть, что я проверил этот код, и он дает мне правильный результат (случайные числа без дубликатов). Спасибо за вашу помощь! – JamesCBaird