NSUserDefault在watchppExtension中更改通知处理

我正在创build一个iwatch应用程序,只需在iphone应用程序中单击tableview时显示值。 我想获得共享userdefault值更改通知。 它是watchkitapp和iPhone应用程序之间共享,所以当用户做任何改变的手机我必须得到通知。 我做了以下 当用户在手机上执行某些操作时 NSUserDefaults *shared = [[NSUserDefaults alloc] initWithSuiteName:@"group.app"];</br> id object = [self.plantsArray objectAtIndex:[self.plantsTable indexPathForSelectedRow].row];</br> [shared setObject:object forKey:@"data"];</br> [shared synchronize]; 在watchkit扩展中已经注册了通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(print) name:NSUserDefaultsDidChangeNotification object:nil]; 但不幸的是,我没有收到任何通知,任何人都知道一些解决scheme

无法理解NSError / NSObject指针传递行为

即使我已经阅读,我现在困惑于指针指针为什么NSError需要双重间接? (指针指针)和NSError * vs NSError **等等。 我做了一些思考,仍然有一些问题。 在这里我写了这个: NSError *error = [NSError errorWithDomain:@"before" code:0 userInfo:nil]; NSLog(@"outside error address: %p", &error]; [self doSomethingWithObj:nil error:&error]; 为了testing上面的NSError方法,我写了这个: – (id)doSomethingWithObj:(NSObject *)obj error:(NSError *__autoreleasing *)error { NSLog(@"inside error address: %p", error); id object = obj; if (object != nil) { return object; } else { NSError *tmp = [NSError errorWithDomain:@"after" […]

通过NSManagedObjectSubclass上的Swift Computed属性对NSFetchedResultsController进行sorting

我正在使用Swift和Core Data构build一个应用程序。 在我的应用程序的一个点上,我想有一个UITableView显示当前在持久存储中的types的所有对象。 目前,我正在检索它们并使用NSFetchedResultsController在表格视图中显示它们。 我希望表视图按我的NSManagedObject子类的计算属性sorting,如下所示: class MHClub: NSManagedObject{ @NSManaged var name: String @NSManaged var shots: NSSet var averageDistance: Int{ get{ if shots.count > 0{ var total = 0 for shot in shots{ total += (shot as! MHShot).distance.integerValue } return total / shots.count } else{ return 0 } } } 在我的表视图控制器,我设置我fetchRequest如下: let request = NSFetchRequest(entityName: "MHClub") […]

如何使Playground的执行时间与在iOS应用程序中运行一样快

我看到操场执行速度不可靠。 例如用一个代码: import UIKit var count = 0; let startTime = NSDate() for i in 1…10000 { count++ } let endTime = NSDate() let interval = endTime.timeIntervalSinceDate(startTime) interval的值大约是2s,这是不可靠的。 随着Swift 2.0和XCode beta 7的发布,是否有可能使Swift游戏代码执行速度与iOS应用程序一样快?

在iOS 7中锁屏播放器的search栏问题

如果我通过iOS 7的iPhone原生音乐播放器播放音乐并在locking屏幕上访问音乐,则可以拖动播放器的search栏,即用户可以与其进行交互。 截图: 但是,如果我从支持后台audio播放的应用播放音乐,则在locking屏幕上禁止播放器的search栏用户交互。 我无法移动它。 截图: 我搜查了苹果的文档,但没有find任何与此相关的内容。 我的问题是,iOS允许第三方应用程序与本地音乐应用程序在locking屏幕上与玩家的search栏进行交互,还是必须在我的代码中添加一些设置?

移动Safari:audio+caching清单

我有一个小型的networking应用程序,点击几个button,播放真正短的声音位。 它明确针对iOS上的移动Safari(iPad)。 在这里和其他地方阅读了关于HTML5audio在移动Safari上的几个“缺点”,并尝试了一些“黑客”和技巧之后,我坚持认为Safari很简单(因为没有更好的词)破碎: 我可以播放声音A(需要很长时间才能开始 – 我假设它是downlading [再次]?)点击buttonA.之后,点击buttonB将立即播放声音A了。 buttonC也一样。在某些情况下,它会发出不同的声音,有时甚至是正确的。 但主要是声音A.使用的格式是.aiff,现在是.m4a。 在自己写了几个小的版本后,我决定去Buzz库去处理声音加载/播放/等等。 有趣的是,他们的演示包括一个游戏,它几乎正是我所需要的, 并触发相同的错误行为。 我甚至结束了在任何标签的任何移动Safari中的任何audio播放器将播放Buzz演示游戏(!)中的特定声音的情况。 我希望caching清单可能有助于克服Apples预加载限制,强制应用程序在离线模式下点击button后播放声音。 但确认整个应用程序已被caching后,我无法在离线模式下播放/听到任何声音。 有没有人设法得到这样的东西以某种方式工作? (看过苹果如何处理某些事情,虽然我不期待太多回应) 更新1: 在这个答案的例子导致相同的效果: 如何在iPad上使用HTML5 / Javascript合成audio 更新2: 更新iOS(和Safari)似乎解决了audio错误。 但是,caching清单似乎并不影响audio文件。 这些文件根本不可用。 删除caching清单后,应用程序可以正常工作,但将其添加到“主屏幕”并重新加载,可防止播放audio。

酒吧button项目未正确alignment

我的导航栏有问题,UIBarButtonItem不正确的垂直alignment。 我不知道为什么,因为我使用简单的UIBarButtonItem而不是自定义视图。 看到我的代码下面,感谢您的帮助! UIBarButtonItem *newGameItem = [[UIBarButtonItem alloc] initWithTitle:@"New Game" style:UIBarButtonItemStyleDone target:self action:@selector(newGame)]; self.navigationItem.rightBarButtonItem = newGameItem;

如何在用户删除我的iOS应用程序后存储本地数据?

我认为这是不可能的,因为所有的数据存储在一个沙箱中,当用户删除应用程序,所有的数据应该从设备中删除。 但不知何故,这发生了: 我从appstore下载了一个壁纸应用程序。 这是一个免费的应用程序,如果你不支付,你可以下载有限的壁纸,高达105。 我下载一个壁纸,并保存到我的相册。 现在是1/105。 我删除了该应用程序,并删除了我的相册中的壁纸。 我closures了iCloud备份function。 好的,它完全从我的设备中删除,对不对? 我再次下载它。 我进入飞行模式,所以没有互联网连接。 我打开的应用程序,没有壁纸预览可以从互联网上下载。 但保存数显示1/105! 我不是想偷他们的壁纸,我没有改变我的壁纸4个月。 我只想知道,这个应用程序怎么知道我已经保存了1张壁纸? 我删除了该应用程序。 所以它不会存储在应用程序文档或tmp文件夹中。 我删除了我的相册中的壁纸,所以它不能从我的相册的MD5得到它。 我处于飞行模式,所以无法从服务器或互联网上的任何地方获取。 任何人都知道这个应用程序存储保存/下载计数?

苹果和私人API

现在公众知道App Store提交的内容正在使用私有API进行testing,所以我需要提出这个问题…究竟是一个私有API,以便我可以避免它们?

如何通过平移手势限制可移动的视图

我有一个UIImageView可以通过平移手势移动。 UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; [self.photoMask addGestureRecognizer:pan]; 我想限制可以在屏幕上移动的区域。 而不是用户能够将视图拖到屏幕的一侧,我想限制它的某种边缘。 我怎样才能做到这一点? 另外,这是如何处理时,旋转? 编辑— #pragma mark – Gesture Recognizer -(void)handlePan:(UIPanGestureRecognizer *)gesture { NSLog(@"Pan Gesture"); gesture.view.center = [gesture locationInView:self.view]; } 这是我目前处理泛的方法。 我需要做的是继续移动中心点的图像视图,并限制其靠近屏幕边缘的运动,例如50。