类似于这个问题: 如何访问applicationDidBecomeActive上的远程推送通知数据? 但是不同之处在于,如何在applicationDidBecomeActive访问通知数据,以及是否单击了应用程序图标而不是推送通知。 stream程如下:如果点击push notification则会触发didReceiveRemoteNotification ,但是如果您单击原始应用程序图标,则只会触发applicationDidBecomeActive并且不会调用didReceiveRemoteNotification 。 我正在寻找后面的情况,所以我如何访问推送通知数据。 (这两种情况下,假设应用程序在后台,并没有被杀害。)
如何让Crashlytics在没有我的应用程序崩溃的情况下接收日志? 我有以下代码: if(!context.managedObjectContext save:&error) { CLS_LOG(@"%@",error.description) } 发生错误时,我想Crashlytics服务器收到错误,但应用程序应继续运行。 我不需要马上login。 我很乐意在下次重启时获得日志。 我只是不想在我的应用程序中触发崩溃来接收日志。 这可能吗?
在Xcode 4.3中,当你select放置在.xib中的一些UIView对象时,你可以发现有一个选项“Clear Graphics Context”。 这是什么意思?
在iOS 7中,当呈现UIActionSheet时,系统控制所有将其tintColor为灰色的animation。 当表被解雇时,他们回生。 我有一些使用自定义背景图像或使用tint颜色的drawRect实现的控件,我希望它们像系统控件一样为这个更改设置animation。 苹果添加- (void)tintColorDidChange UIView ,但在这种方法重新绘制与新的颜色不animation的变化 – 它只是立即从全彩色切换到全灰色,这看起来不好,当其他周围的系统控制是animation。 我怎样才能使我的自定义绘制的控制animation像苹果的tintColor过渡?
当用户点击我的行中的一个button时,我正在更新该行的基础模型,然后为给定行(即单行重新加载)调用reloadRowsAtIndexPaths。 – (IBAction)handleCompleteTouchEvent:(UIButton *)sender { NSIndexPath *indexPath = [self.tableView indexPathForView:sender]; id item = [self dataForIndexPath:indexPath]; if ([item respondsToSelector:@selector(completed)]) { // toogle completed value BOOL completed = ![[item valueForKey:@"completed"] boolValue]; [item setValue:[NSNumber numberWithBool:completed] forKey:@"completed"]; [self.tableView beginUpdates]; [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; [self.tableView endUpdates]; } } 问题是在进行这个调用之后,表格视图会跳回到部分的顶部。 我怎样才能防止这种情况发生,并保持滚动的位置?
今天我注意到,iTunes Connect的销售和趋势部分有一个新的外观和一些新的function,但似乎我公司的应用程序(专为iPad / iPhone)在桌面上下载? 有谁知道“桌面”可能意味着什么iOS应用程序?
在Objective-C中,我有一个关于线程安全性的问题。 我已经阅读了一些其他的答案,一些苹果的文档,并仍然有一些怀疑,所以想我会问自己的问题。 我的问题是三重 : 假设我有一个数组, NSMutableArray *myAwesomeArray; 折叠1: 现在纠正我,如果我错了,但从我的理解,使用@synchronized(myAwesomeArray){…}将阻止两个线程访问相同的代码块。 所以,基本上,如果我有这样的东西: -(void)doSomething { @synchronized(myAwesomeArray) { //some read/write operation on myAwesomeArray } } 那么,如果两个线程同时访问同一个方法,那么这个代码块将是线程安全的。 我猜我已经正确地理解了这个部分。 折叠2: 如果myAwesomeArray被来自不同方法的多个线程访问,我该怎么办? 如果我有这样的东西: – (void)readFromArrayAccessedByThreadOne { //thread 1 reads from myAwesomeArray } – (void)writeToArrayAccessedByThreadTwo { //thread 2 writes to myAwesomeArray } 现在,两个方法同时被两个不同的线程访问。 我如何确保myAwesomeArray不会有问题? 我使用类似NSLock或NSRecursiveLock? 折3: 现在,在上述两种情况下, myAwesomeArray是内存中的一个iVar。 如果我有一个数据库文件,我不会一直保存在内存中。 每当我想执行数据库操作时,我都会创build一个databaseManagerInstance ,并在完成后释放它。 因此,基本上,不同的类可以访问数据库。 每个类创build自己的DatabaseManger实例,但基本上它们都使用相同的单个数据库文件。 […]
我有一个UIImagePicker完美的UIImagePickerControllerSourceTypePhotoLibrarytypes,但是当我使用UIImagePickerControllerSourceTypeCamera,编辑框不能从图像的中心移动。 因此,如果图像比宽度大,用户不能将编辑框移动到图像的上方。 任何人都知道为什么会这样? 它只发生在来源是相机而不是图书馆。 编辑:一些代码! if (actionSheet.tag == 2) { if (buttonIndex == 0) { // Camera // Check for camera if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == YES) { // Create image picker controller UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; // Set source to the camera imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; imagePicker.allowsEditing = YES; // Delegate is self imagePicker.delegate […]
我们在Google Play商店和Apple AppStore中都有移动应用程序,我们希望实施推介计划以吸引更多用户安装和使用我们的应用程序。 这是用户故事: 每个新用户(例如约翰)都被赋予一个独特的推荐链接,他/她可以在这里分享到FB / TW /电子邮件或短信。 当约翰朋友点击链接时,他们被引导到各自的AppStore基于他们的设备。 约翰的朋友安装应用程序的时刻,并打开应用程序,我们的服务器应该得到通知,我们将知道,转介来自约翰,约翰将相应地奖励.. 我们已经评估了一些移动应用程序安装跟踪工具,大多数的工具是最好的使用发布者/手机广告.. 欣赏任何意见,build议 干杯詹姆斯
HAs任何人在iOS应用程序中实现MVVM模式,而不使用ReactiveCocoa? 在这里发现了很多的例子,但他们都使用反应cocoa。 我想要一个MVVM实现的简单例子。