在iPhone应用程序中使用视图和视图控制器时,任何人都可以解释loadView和viewDidLoad之间的区别吗?
我个人的背景是,我从代码构建我的所有视图,我不会,也不会使用Interface Builder,如果这有任何区别.
我发现通常当我将初始化代码添加到loadView时,我最终会得到一个无限的堆栈跟踪,所以我通常在viewDidLoad中完成所有的子视图构建...但是每次执行时我都不清楚它,并且什么是更适合放置init代码的地方.什么是完美的,是一个简单的初始化调用图.
谢谢!
在开发iPhone应用程序并尝试通过标准NSUserDefaults机制保存首选项时,我一直遇到非常不一致的结果.我正在使用Erica Sadun的iPhone Developer's Cookbook中的代码(精彩的书btw),它看起来像这样:
(void) updateDefaults
{
NSMutableArray *spells = [[NSMutableArray alloc] init];
NSMutableArray *locs = [[NSMutableArray alloc] init];
for (DragView *dv in [boardView subviews])
{
[spells addObject:[dv whichSpell]];
[locs addObject:NSStringFromCGRect([dv frame])];
}
[[NSUserDefaults standardUserDefaults] setObject:spells forKey:@"spells"];
[[NSUserDefaults standardUserDefaults] setObject:locs forKey:@"locs"];
[[NSUserDefaults standardUserDefaults] synchronize];
[spells release];
[locs release];
}
值有时会被保存,有时会被恢复.我无法确定它是什么或不能使它起作用.
还有其他人有类似的经历吗?关于什么可能使它工作的任何建议?同步方法是强制磁盘写入并使值保存的最佳方法,还是有更好的方法(对于生产和模拟器而言).
谢谢瑞恩
我正在研究iPhone游戏,并尝试使用UIScrollView显示一些图标,然后我想让用户将正在滚动的栏拖到另一个视图上(基本上,将它们从他们的手拖到游戏中)游戏板).问题是UIScrollView会剪切它自己边界之外的所有内容.
这是我正在尝试做的图片:

从功能上来说,它实际上是可行的,因为你可以将图标向上拖动到白板上......但是当你拖动时你看不到它们......这是不可接受的.
有没有人知道你是否可以暂时禁用滚动视图所做的剪辑,或者是否有某种方法来绕过它?哈克与否,我真的很想实现它.
有没有人有任何其他可能的解决方案?或者也许任何替代方法?我已经考虑过,如果页面视图可能有效,但还没有尝试过......而且它并不像滚动视图那样好.
最糟糕的情况我可以回到没有可滚动的栏,但这确实阻碍了我的一些游戏机制,我真的不太兴奋.