假设我有一个即时消息应用程序,每次消息到达时都会发出哔声.我想要debounce
发出哔哔声,但我想播放第一条消息的嘟嘟声而不是下面的消息(在2秒的时间内).
另一个例子可能是:我的应用程序发送了输入通知(因此我正在聊天的用户可以看到我正在键入消息).我想在开始输入时发送打字通知,但只在X秒间隔发送新的通知,所以我不会为我输入的每个字符发送输入通知.
这有意义吗?那有运营商吗?可以用现有的运营商来实现吗?
这是我的第一个例子的代码.我现在正在解决它debounce
,但它并不理想.如果我以1秒的间隔收到1000条消息,则在最后一条消息到达之前它不会播放声音(我想在第一条消息上播放声音).
self.messagesHandler.messages
.asObservable()
.skip(1)
.debounce(2, scheduler: MainScheduler.instance)
.subscribeNext { [weak self] message in
self?.playMessageArrivedSound()
}.addDisposableTo(self.disposeBag)
Run Code Online (Sandbox Code Playgroud)
谢谢!
我在应用程序商店中有一个应用程序,它使用Core Data来保存大部分数据.例外是存储图像.我将子目录中的图像存储到Documents目录,并将该图像的NSURL引用存储在核心数据存储中的相应对象属性中.
我们注意到,当更新进入应用程序商店时,找不到这些图像,因此不会使用与先前版本的应用程序一起存储的引用来显示这些图像.现在,我怀疑问题是,因为我们使用开发设备进行测试,所以这个问题会传播,因为dev应用程序使用的Applications目录中的Directory与App store正在创建/使用的目录不同.我注意到应用程序中App的App Store目录与Xcode中调试版本时创建的App Store目录之间存在差异.因此,存储在核心数据中的URL指向错误的应用程序文件夹.这有点难以调试,因为一旦新版本在商店中发布,我就无法下载旧的应用程序版本.
所以我有几个问题.我是否可以保证下载同一应用程序版本的人员所在的Applications子目录是相同的,这使得非开发设备无问题?
我应该存储相对图像网址或字符串来表示这些资源的位置,还是应该可以存储最终成为绝对网址的内容?
非常感谢,费利佩
我有两个按钮的警报视图,但按钮不打开网址.我不知道错误.请帮忙.
这是代码:
-(IBAction)showAlertView {
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Obrir en..."
message:@"Es pot requirir la aplicació de Google Maps"
delegate:self
cancelButtonTitle:@"Millor no..."
otherButtonTitles:@"Mapes",@"Google Maps",nil];
[alert show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
if([title isEqualToString:@"Mapes"])
{
UIApplication *ourApplication = [UIApplication sharedApplication];
NSString *ourPath = @"http://maps.apple.com/?q=Plaça+del+Rei+43003+Tarragona";
NSURL *ourURL = [NSURL URLWithString:ourPath];
[ourApplication openURL:ourURL];
}
if([title isEqualToString:@"Google Maps"])
{
UIApplication *ourApplication = [UIApplication sharedApplication];
NSString *ourPath = @"comgooglemaps://?daddr=Plaça+del+Rei+43003+Tarragona&directionsmode=walking";
NSURL *ourURL = [NSURL URLWithString:ourPath];
[ourApplication openURL:ourURL];
}
}
Run Code Online (Sandbox Code Playgroud)