Вместо того, чтобы передавать каждое значение в вашем целевом VC, попробуйте передать только recipe
объект. Затем получите значения из этого объекта и заполните свои элементы управления.
1) создать recipe
объект в вашем EditViewController
var editRecipe : Recipe! // Your Model class
2) присвоить значения
let editViewController = self.storyboard?.instantiateViewController(withIdentifier: "EditViewController") as! EditViewController
editViewController. editRecipe = recipeList[indexPath.row]
self.present(editViewController, animated: true, completion: nil)
3) в ViewDidload
из EditViewController
if editRecipe != nil {
//Fill data in lbls
//lbl_name.text = editRecipe.name
}
Я наблюдал Одну вещь. Это дает только положительные числа в python
print 4%3
print 3%3
print 3%3
print 2%3
print 1%3
print 0%3
print -1%3
print -2%3
print -3%3
print -4%3
- это дало мне
1
0
0
2
1
0
2
1
0
2
, Но В C, это дает ответы, данные @gormenghastly
#include<stdio.h>
int main()
{
printf("\n %d",3 % 3);
printf("\n %d",4 % 3);
printf("\n %d",3 % 3);
printf("\n %d",2 % 3);
printf("\n %d",1 % 3);
printf("\n %d", 0 % 3);
printf("\n %d",-1 % 3);
printf("\n %d",-2 % 3);
printf("\n %d",-3 % 3);
printf("\n %d",-4 % 3);
return 0;
}
, я делал определение % от того, что я видел от вывода Python, Но теперь я также смущен
Я всегда использую свою собственную функцию mod
, определенную как
int mod(int x, int m) {
return (x%m + m)%m;
}
. Конечно, если вас беспокоит, что два вызова модуля операции, вы можете записать ее как
int mod(int x, int m) {
int r = x%m;
return r<0 ? r+m : r;
}
или ее варианты.
Причина, по которой она работает, состоит в том, что «x% m» всегда находится в диапазоне [-m + 1, m-1]. Таким образом, если оно вообще отрицательное, добавление к нему m переведет его в положительный диапазон без изменения его значения по модулю m.
Просто добавьте свой модуль (arrayLength) к отрицательному результату%, и все будет в порядке.