이것은 monotouch입니다 (자 마린 스튜디오) 아이 패드 응용 프로그램이미지 로딩 여러 번 Monotouch/자 마린 스튜디오
나는 영상을보고 거기에 140 개 이미지가 있고 그들이 그것을 속도로 사용자를 묻는 설문 조사를 무작위로 표시됩니다. 나는이 이미지들을 폴더에 넣고 pic1.jpg, pic2.jpg, pic3.jpg 등으로 이름을 지었다. 설문 조사를 시작할 때 나는 1-140의 숫자 배열을 무작위로 생성했다. 같은 번호를 가지지 않도록했다. 두 번 (이것은 확인되고 작동 중입니다 ....). 그런 다음 배열을 통해 무작위 순서로 이미지를 표시합니다.
iOS7을 업데이트 한 후 잘못된 이미지가 나타나는 문제가 있습니다. 하나의 테스트에서 여러 번 나타납니다. 나는 이것을 디버깅했으며 단순히 이미지가 다른 이미지로 대체 된 것처럼 보이는 잘못된 이미지 일뿐입니다 ... 예를 들어 이미지 81이 이미지 94가 실제로 나타나야했을 때와 같습니다. 나는 이미지 폴더에있는 모든 이미지를 확인하고 중복 된이 없습니다
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
};
};
이 여기
는 평가에 대한 코드입니다 ... 140 개 이미지 12 번 일어났다.왜 이런 일이 발생하는지 알고 싶습니다.
은 ... @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