NSPredicate匹配“NSDatabase中包含一个string的值的任何条目”

我有一系列字典,类似于以下内容: ( { 黑色=“?”; date=“????。??” 结果=“*”; SourceDate =“2007.10.24”; 白=“配对模式#1”; }, { 黑色=“?”; date=“????。??” 结果=“*”; SourceDate =“2008.10.24”; 白=“关于本出版物”; } ) 我想让用户能够在“白色”和“黑色”字段内或任何字段内search文本。 我有一个NSPredicate来做特定的领域: predicate = [NSPredicate predicateWithFormat:@"self.Black contains[cd] %@ or self.White contains[cd] %@", searchText, searchText]; [filteredGames addObjectsFromArray:[games filteredArrayUsingPredicate:predicate]]; 我想不出如何为一个谓词返回一个谓词,这个谓词将返回与文本匹配的任何对象的字典。 即我可以search“2007”,它会返回第一个字典,但不是第二个。 我尝试了我自己并不真正期待的“自我。*”,并且还“更自我。所有的价值”,这是我更有希望的。 事实上我并不知道密钥是什么,因此需要一些不太具体的东西。 有什么build议么?

AVQueuePlayer播放没有间隙和冻结

我使用AVQueuePlayer播放从URL加载的电影序列。 我尝试使用所有需要播放的AVPlayerItems数组初始化播放器实例。 player = [[AVQueuePlayer queuePlayerWithItems:playerItemsArray] 但在这种情况下, AVQueuePlayer会在开始播放之前加载每个AVPlayerItem一些初始部分。 它会导致令人沮丧的冻结,并且应用程序在几秒钟内不响应。 有可能只添加第一个AVPLayerItem到播放器的队列中,观察它的状态,并且只在第一个播放到达结束时才在队列中添加第二个播放项,但在这种情况下,由第二个AVPlayerItem初始化和缓冲。 有没有办法组织无缝播放的几个video没有冻结? 我是否应该使用其他玩家来达到这个目的? 提前致谢。

用一种颜色绘制一个多边形的笔画,另一个用于填充?

我在绘制一些用颜色抚摸的线条,然后用另一个线条填充它们的内部(它们构成一个多边形)时遇到了麻烦。 UIColor *houseBorderColor = [UIColor colorWithRed:(170/255.0) green:(138/255.0) blue:(99/255.0) alpha:1]; CGContextSetStrokeColorWithColor(context, houseBorderColor.CGColor); CGContextSetLineWidth(context, 3); // Draw the polygon CGContextMoveToPoint(context, 20, viewHeight-19.5); CGContextAddLineToPoint(context, 200, viewHeight-19.5); // base CGContextAddLineToPoint(context, 300, viewHeight-119.5); // right border CGContextAddLineToPoint(context, 120, viewHeight-119.5); CGContextAddLineToPoint(context, 20, viewHeight-19.5); // Fill it CGContextSetRGBFillColor(context, (248/255.0), (222/255.0), (173/255.0), 1); //CGContextFillPath(context); // Stroke it CGContextStrokePath(context); 随着CGContextStrokePath注释掉,我得到这个结果: 但是,如果我取消注释CGContextStrokePath并填充多边形,颜色会溢出笔画: 你如何达到这样的结果(不必重复整个绘图程序两次):

我可以用一个UITableViewDelegate使用多个segues吗?

我有一个UITableView列出多种types的对象,我想继续不同的视图取决于用户select哪种types的对象。 有可能通过使用多个赛段来做到这一点,如果是这样,如何呢?

使用SceneKit行原始types的笔触宽度

我正在尝试使用场景工具包复制此多维数据集图像形状(来自原始创build者的许可)。 到目前为止,我有线和顶点的绘图代码。 我不能使用图像,因为背景必须是透明的。 我正在尝试解决的具体问题是如何编辑SCNGeometryPrimitiveType.Line元素的描边宽度。 我创build线条的基本方式是这样的: private func squareVertices(length: Float) -> [SCNVector3] { let m = length/Float(2) let topLeft = SCNVector3Make(-mq, m+q, m+q) let topRight = SCNVector3Make( m+q, m+q, m+q) let bottomLeft = SCNVector3Make(-mq, -mq, m+q) let bottomRight = SCNVector3Make( m+q, -mq, m+q) return [topLeft, topRight, bottomLeft, bottomRight] } private func cubeFace() -> SCNGeometry { let […]

iOS 11关于iPhone x安全区域的布局指南

我的应用程序已经在应用程序商店,昨天我已经更新了我的Xcode版本为9,并且工作正常,除了iPhone X。 用户界面崩溃了。 1.我有创build两个UIView (都是固定的高度)命名为标题和选项卡栏,我已经隐藏了我的NavigationBar整个应用程序。 2.添加扩展到UIViewController的标题和标签栏 func addHeaderTab(currentViewController:UIViewController,content:String, isMenu:Bool){ let noView = TopHeaderView() noView.tag = 12345 noView.isMenu = isMenu noView.translatesAutoresizingMaskIntoConstraints = false currentViewController.view .addSubview(noView) if isMenu{ noView.menuBtn .setImage(UIImage(named: "Small"), for: .normal) noView.logoImg.isHidden = false }else{ noView.menuBtn .setImage(UIImage(named: "arrow_small"), for: .normal) noView.logoImg.isHidden = true } noView.titleLbl.text = content noView.delegate = (currentViewController as! menuOpen) NSLayoutConstraint(item: noView, attribute: […]

iOS App Bundle中的多个本地化.strings文件

我有一个相当复杂的项目,由几个大型本地化子项目组成。 我的大部分子项目都是通过一个Localizable.strings文件本地化的 。 该文件被复制到一个SubProjectName.bundle目标中,该目标与主项目中的一个SubProjectName.a静态库一起使用。 这工作正常。 但是,我的一个子项目包含许多本地化的.strings文件。 无论设备(或模拟器)如何configuration, 该项目都无法读取除英语以外的任何语言的string 。 例如,这行代码总是返回英文string: [[NSBundle myResourcesBundle] localizedStringForKey:@"MY_TEST_STRING" value:@"" table:@"MyTable"] 其中MyTable对应于本地化为多种语言的MyTable.strings文件。 当我浏览.app包时,所有的本地化都在那里,坐在应用程序中的“MyBundle.bundle”资源中。 但是,以下代码正确地查找了所有本地化中给定string的翻译: for (NSString *language in [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]) { NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle myResourcesBundle] pathForResource:language ofType:@"lproj"]]; NSLog(@"%@: %@", language, NSLocalizedStringFromTableInBundle(@"MY_TEST_STRING", @"MyTable", bundle, nil)); } 所以,当这个包是实际的MyBundle.bundle/<LanguageCode>.lproj文件夹时,string查找工作。 但是显然,这打破了iOS提供的自动查找的目的。 (请注意,上面的[NSBundle myResourcesBundle]只是一个静态方便的方法来获取我的自定义的子项目的包)。 – 编辑 :我一直在试验这一些,如果我从我的子项目的捆绑删除en.lproj文件夹,然后它正确地使用设备或模拟器的区域设置。 例如,我有: MyApp.app/ | – MyResources.bundle/ | […]

清洁架构 – Robert Martin – 如何连接用例

我正在尝试实施Robert Martin所描述的清洁架构 。 更具体地说,我使用的是干净架构的iOS版本的VIPER 。 我有这个问题如下: 用户开始查看带有地点(地图)的地图。 如果他点击一个button,一个别针被丢弃,并被带到另一个视图来创build(或编辑,如果它是一个现有的针脚点击)的地方(或取消)。 在另一个视图中,用户可以编辑地点的信息,然后点击“返回”或“完成”(或“编辑”)。 如果他点击“完成”,则PlaceDetailsViewController向PlaceDetailsPresenter发送一条消息,其中包含地点信息,PlaceDetailsPresenter使用CreatePlaceInteractor创build该地点。 这个交互者返回用​​于标识地点的GUID。 如果用户在创build地点之前点击回来,他会回到地图上,并且丢弃的针脚上升(因为它没有GUID,这是一个新的地方,并消失)。 如果他在创build之后再次点击,则该引脚停留在那里(因为它应该有一个GUID)。 我应该如何连接所有的地方信息(包括GUID)在哪里存储? 澄清一点点: 谁应该通知MapPresenter销钉停留在那里或者消失? 它是PlaceDetailsPresenter还是应该将这些信息传递给PlaceDetailsWireframe – > MapWireframe – > MapPresenter – > MapView? 在返回之前,这个GUID应该存储在PlaceDetailsPresenter还是PlaceDetailsViewController中? 现在这就是我所拥有的: 编辑: 基本上我认为问题在于,VIPER来自Robert Martin的Clean Architecture,他来自Web(Rails)背景,所以他对于状态没有太多的了解(或者在谈话中没有说明)。 这主要是我的问题,应该在哪里存储状态,不同的模块应该如何通信,应该通过线框,数据库还是通过交互器,或者通过主持人互相通信,如https:/ / /github.com/objcio/issue-13-viper-swift 。

在CTCallCenter callEventHandler中取消隐藏视图非常缓慢

在原始问题没有得到答复之后,转载更加简洁和重点突出的问题。 经过一天的研究之后,还要加深对这个问题的认识: 在我的应用程序委托(didFinishLaunching)中,我在CTCallCenter上设置了一个callEventHandler。 这个想法是,当一个callState改变时,我发布一个包含call.callState的userInfo字典的通知。 在我看来,我观察到这个通知,并且当userInfo字典包含CTCallDisconnected的值时,我想取消隐藏一个视图。 我遇到的问题是,无隐藏的方面几乎一致,约7秒。 其他一切工作正常,我知道这是因为我NSLog之前和之后的解除隐藏,而这些日志立即出现,但恶意的观点仍然滞后7秒。 这是我的代码: appDidFinishLaunching: self.callCenter = [[CTCallCenter alloc] init]; self.callCenter.callEventHandler = ^(CTCall * call){ //我们的呼叫中心发生了状态变化 NSDictionary * dict = [NSDictionary dictionaryWithObject:call.callState forKey:@“callState”]; [[NSNotificationCenter defaultCenter] postNotificationName:@“CTCallStateDidChange”object:self userInfo:dict]; }; 然后,当用户点击拨打电话号码的button时,我会收听此通知: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ctCallStateDidChange 🙂 name:@“CTCallStateDidChange”object:nil]; 然后,在ctCallStateDidChange中: – (void)ctCallStateDidChange:(NSNotification *)通知 { 的NSLog(@ “121”); NSString * callInfo = [[通知用户信息] objectForKey:@“callState”]; 如果([callInfo isEqualToString:CTCallStateDisconnected]){ NSLog(@“before […]

在UIView中用xib文件使用CollectionView

我正在做这个,我想使用CollectionView,但我还没有看到原型单元格,并不知道如何使用CollectionView在这种情况下,有人可以帮我吗? 我尝试像这样使用,但比UICollectionView花费很多时间和难于pipe理