我正在使用storyboard开发iOS5应用程序,我在视图控制器类中有一个方法,我想从App Delegate访问.麻烦的是,这个视图控制器通过故事板中的标签栏控制器进行实例化,因此App Delegate无法直接调用我想要的方法...
要使视图控制器与App Delegate取得联系,所有人都必须使用:
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
Run Code Online (Sandbox Code Playgroud)
是否有类似的简单方法指向已经实例化的视图控制器或类?
我正在为我的iPhone应用程序上课,我希望它注册并了解应用程序状态更改(UIApplicationDidEnterBackgroundNotification等).有没有办法为通知注册一个类,而不必将实例化的对象保留在内存中?我只是希望有适当的通知调用类来初始化,做一些事情,然后再次留下内存.
现在我在init方法中有以下内容:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(handleEnteredBackground)
name: UIApplicationDidEnterBackgroundNotification
object: nil];
Run Code Online (Sandbox Code Playgroud)
以及该类的.m文件中的其他方法:
- (void) handleEnteredBackground {
NSLog(@"Entered Background"); }
Run Code Online (Sandbox Code Playgroud)
我将该类实例化一次applicationDidLoad,但由于我没有对它做任何事情,我认为ARC会从内存中杀死该对象,当我关闭它时应用程序崩溃(没有任何有用的错误代码,请注意).如果我切换handleEnteredBackground到带有"+"符号的类方法,则在关闭应用程序时会出现无效的选择器错误.
最终目标是在应用程序的生命周期中实例化一次类,并使其能够响应应用程序状态更改,而无需在类外部添加任何其他代码.假设iOS 5 + Xcode 4.2+
这是一个我们多次都想知道的问题,没有人似乎有一个好的答案.
像DataMan这样的应用程序如何在后台定期运行,无限期地进入应用程序商店?
该应用程序允许用户打开"精确数据跟踪"并选择应用程序更新其数据使用计数器的频率,用户互动为零 - 间隔为每分钟一次,每10分钟一次,每20分钟一次.
是的,我已经阅读了有关后台进程的所有相关Apple文档,并成功实现了许多.我也探讨了这个老帖子的细节,但现在它已经足够老了许多"循环漏洞"已被修补,并且记录的内容无论如何都会更好.
虽然我很幸运将我的应用程序注册为VOIP应用程序并请求以一定的时间间隔保持活着,但它不是app-store-ok,除非它是VOIP应用程序(DataMan不是).此外,注册VOIP保持活动实际上并不表现出与DataMan相同的行为... VOIP保持呼叫以某种随机的间隔出现,或者至少在您选择的频率上,而不会同步到时钟时间.DataMan实际上符合时钟规定的时间间隔,并在:10,:20,:30分钟标记等处更新其数据计数器.
有任何想法吗?
objective-c ×3
iphone ×2
background ×1
delegates ×1
ios5 ×1
location ×1
selector ×1
storyboard ×1
voip ×1