在我的应用程序中,我有一个RootViewController(UIPageViewController),一个FirstController(UIViewController)和一个SecondController(UIViewController). 两个UIViewControllers中的两个视图滚动RootViewController.
在我的RootViewController.h中:
@interface RootController : UIPageViewController <UIPageViewControllerDataSource, UIPageViewControllerDelegate>
Run Code Online (Sandbox Code Playgroud)
但是当我在不同的视图之间滚动时,委托方法如下:
-(void) pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
Run Code Online (Sandbox Code Playgroud)
不叫.为什么?有人能帮我吗?先感谢您.
我在程序执行期间将一些数据记录到.txt文件中.问题是有时候我需要切断系统的电源,但我还是想保存写入的数据.
这是我用来在txt文件上编写的代码:
std::ofstream file; // placed inside the header file
file.open("filename.txt"); // placed in the class constructor
file << "data " << std::endl; // repeatedly called inside a loop
Run Code Online (Sandbox Code Playgroud)
在执行期间刷新数据,因为我在程序运行时打开文件,然后看到更新.但是如果我切断电源,结果就是一个空文件,或者只写了一行.我也试过手动flush(),但这也不起作用.操作系统是Linux Yocto Poky.
我想将interpolator生成的对象保存scipy.interpolate.InterpolatedUnivariateSpline到文件中,以便以后加载它并使用它.这是控制台上的结果:
>>> interpolator
<scipy.interpolate.fitpack2.InterpolatedUnivariateSpline object at 0x11C27170>
np.save("interpolator",np.array(interpolator))
>>> f = np.load("interpolator.npy")
>>> f
array(<scipy.interpolate.fitpack2.InterpolatedUnivariateSpline object at 0x11C08FB0>, dtype=object)
Run Code Online (Sandbox Code Playgroud)
这些是试图使用f带有通用值的加载插值器的结果:
>>>f(10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'numpy.ndarray' object is not callable
Run Code Online (Sandbox Code Playgroud)
要么:
>>> f[0](10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: too many indices for array
Run Code Online (Sandbox Code Playgroud)
如何正确保存/加载?
我使用库CImg有以下代码进行图像处理.
for (int y = 0; y < height; y++)
for (int x = 0; x < width; x++) {
width = in.
float weight = strength*x*(xmax-x)*y*(ymax-y)/(xmax*xmax)/(ymax*ymax);
int new_x = (int) ((1-weight)*x + weight* y * xmax/ymax);
int new_y = (int) ((1-weight)*y + weight*(xmax-x)* ymax/xmax);
out(x,y) = in(new_x,new_y);
}
Run Code Online (Sandbox Code Playgroud)
循环开始时的下一行是什么意思?
width = in.
Run Code Online (Sandbox Code Playgroud)
'width'和'in'分别是一个int和之前声明的CImg对象.
谢谢.