假设我从一个笔尖加载了一个视图控制器,并决定对场景后面的一个子视图做一些事情.在稍后的时刻,我会显示这个视图控制器的视图.
viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[viewController.someSubview doSomething];
//later on
[mainView addSubview:viewController.view];
Run Code Online (Sandbox Code Playgroud)
问题是,在视图出现之前似乎没有加载someSubview对象,因此不调用doSomething方法.到目前为止,我的解决方法是致电:
[mainView addSubview:viewController.view];
[viewController.view removeFromSuperview];
Run Code Online (Sandbox Code Playgroud)
首先初始化viewcontroller的子视图.有没有更优雅的方式(如loadSubviews方法或其他东西)为此任务?
我正在开发一个普通的iPhone应用程序,它从服务器(XML,JSON等)中提取数据,我想知道实现同步数据的最佳方法是什么.标准是速度(较少的网络数据交换),健壮性(更新失败时的数据恢复),离线访问和灵活性(当数据库结构略有变化时适应,如新列).我知道它因应用程序而异,但你们可以分享一些策略/经验吗?
对我来说,我在考虑这样的事情:
1)在iPhone中存储上次修改日期
2)启动时,发送一条消息,如getNewData.php?lastModifiedDate = ...
3)服务器将仅处理和发回上次修改的数据.
4)此数据的格式如下:
<+><data id="..."></data></+> // add this to SQLite/CoreData
<-><data id="..."></data></-> // remove this
<%><data id="..."><attribute>newValue</attribute></data></%> // new modified value
我也不想为每个属性制作<+>,< - >,<%> ...,因为它太复杂了,所以当收到<%>字段时,我只想删除数据使用指定的id,然后再次添加它(假设此处的id不是某些自动自动递增的字段).
5)下载并更新所有内容后,我将更新"上次修改日期"字段.
这个策略的主要问题是:如果在我更新某些内容时网络出现故障=>上次修改日期尚未更新=>下次重新启动应用程序时,我将不得不再次执行相同的操作.更不用说潜在的不一致数据了.如果我使用临时表进行更新并使整个事件成为原子,那么它将起作用,但是如果更新太长(大量数据更改),则用户必须等待很长时间才能获得新数据.我应该为每个数据字段使用Last-Modified-Date并逐步更新数据吗?
通常我使用gdb backtrace来调试我的应用程序,但最近我在iPhone模拟器上测试时再也无法做到.蓝色gdb字停止在控制台上显示,当我输入"bt"或"backtrace"时没有任何反应.我仍然可以在设备上正确构建和调试.
我的XCode版本是3.2.3.有没有办法手动激活gdb(更重要的是回溯)?
我遇到了一个用Objective C编写的库(我只有头文件和.a二进制文件).在头文件中,它是这样的:
@interface MyClass : MySuperClass
{
//nothing here
}
@property (nonatomic, retain) MyObject anObject;
- (void)someMethod;
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现同样的目标?如果我尝试在接口的{}内声明没有相应ivar的属性,编译器会给我一个错误.最后,我想在.a中隐藏我的类的内部结构,并将必要的方法暴露给头文件.如何在.m中声明实例变量?类别不允许我添加ivar,只是方法.
有没有办法获得iPhone相机的分辨率?显然3G有1200x1600,3GS有1500x2000,但我如何从我的代码中获取这些值(没有拍照).我需要他们对相机预览做一些仿射变换.
我可以检测它是3G或3GS来硬编码这些值,但它只是最后的手段.
iphone ×4
backtrace ×1
camera ×1
debugging ×1
declaration ×1
detect ×1
header ×1
iphone-3gs ×1
load ×1
objective-c ×1
private ×1
resolution ×1
subview ×1
uiview ×1
xcode ×1