iOS 11 NSPredicate搜索Swift数组时崩溃-NSUnknownKeyException
我正在使用NSPREDICATE在Swift中过滤数组.问题是在更新iOS 11(Xcode 9/W Swift 4)之后,我一直在过滤器线上崩溃.这是崩溃日志: 终止应用程序由于未被发现的例外" nsunknownekeyexception",原因:>'[valueforundefinedkey:]:此类不是键>关键名称符合值的值编码.' > 这是我有一个数组的类的示例: final class Model: NSObject { let name: String init(name: String) { self.name = name } } 这是崩溃的代码: let myArray = [Model(name: "Jason"), Model(name: "Brian")] let predicate = NSPredicate(format: "name == 'Jason'") let filteredArra
4 2023-12-20
编程技术问答社区
使用谓词获取核心数据值
我的sqlite在其中一个实体中有项目,我希望根据其类别 将其检索 例如.类别1有7个项目,并且类别2有5个项目,当我单击IBACTION时,它将使用此方法并根据我的global.clickedtag 检索 但是我无法检索这些值,任何想法为什么? -(NSMutableArray*)fetchItem:array{ [self managedObjectContext]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"IItem" inManagedObjectContext:managedObjectContext]; NSFetchRequest *request = [[NSFetchRequest alloc] init]; //filter here NSPredicate * predicate = [NSPredicate pred
4 2023-12-19
编程技术问答社区
用NSPredicateEditor强制显示一个复合行
我正在用代码创建一个NSPREDICATEDITER,并试图实现我希望的东西将是一项相当简单的任务.基本上,我想显示一个复合的NSPREDICATEDITORROWTEMPLATE(在"全/任何/none/none aster is true"时,为用户提供了执行匹配项的选项),并且在其下面有许多相当基本的子行.为此,我构造了我的NSPredicateEditor并绑定其值,以在用户编辑其谓词时保存更改. 我正在遇到的问题是,无论如何,我都无法默认情况下将复合的NSPREDICATEDORORTTEMPLATE显示为带有单个子行的父行.当我创建谓词时,我会通过一个伪造的空谓词,例如: filename BEGINSWITH[cd] '' 为了强制显示复合行的显示,我必须创建两个子行: filename BEGINSWITH[cd] '' && path ==[cd] '' 供参考,这是我如何构建NSPredicateEditor: NSArray *key
2 2023-12-19
编程技术问答社区
核心数据可转换属性不能与NSPredicate一起工作
我经常将Transformable用于Core Data attributes,所以我以后可以更改它们. 但是,如果我想使用NSPredicate找到NSManagedObject,使用"uniqueKey == %@"或"uniqueKey MATCHES[cd] %@",它就无法正常工作. 它总是错过匹配对象,直到我更改匹配对象的唯一键的属性为具有特定类,例如NSString或NSNumber. . 有人可以解释使用NSPredicate使用Transformable属性的限制? 解决方案 注意:我不确定自5/2011以来何时/是否发生了变化(来自Scott Ahten的接受答案),但是您可以绝对可以在可转换属性上搜索NSPREDAICE.斯科特(Scott)正确地解释了为什么您的假设被打破了,但是如果有人可以解释使用具有可转换属性的Nspredicate的限制吗?您的问题是您的问题,他暗示这是不可能的,这是不正确的. 由于是" 核心数据可转换值搜索ns
2 2023-12-18
编程技术问答社区
基于BOOLEAN存储值的NSPredicate-过滤值
我有一个称为条目的核心数据模型对象. 在这个中,我有一个属性. 我想使用nspredicate过滤我的nsfetchedresultscontroller. 目前,当执行时,我将获得exc_bad_access. NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; // Edit the entity name as appropriate. NSEntityDescription *thisEntry = [NSEntityDescription entityForName:@"Entry" inManagedObjectContext:managedObjectContext_]; [fetchRequest setEntity:thisEntry]; NSPredicate *fetchPredicate = [NSPredicate predicateWithFormat:@"Entr
4 2023-12-18
编程技术问答社区
NSPredicate:如何将字符串视为数字?
我正在构建一个复合NSPRedicate,以在iOS应用程序中使用SQLite上的核心数据提出请求.一切都很好,但是我无法包括最后一个条件.原因很简单:我需要检查该值是否作为字符串存储在某些浮点边界内.问题在于,条件是按字母顺序检查的,而不是根据其浮点值进行检查.这是代码: NSString * conditionToBeAdded = [NSString stringWithFormat:@" && (%@ >= \"""%@\""") && (%@
0 2023-12-18
编程技术问答社区
数据库中某一行的核心数据主键ID
假设我有一个存储在核心数据中的书籍列表.我想通过其主要密钥ID搜索一本书. 我知道由Core Data创建的SQLite文件在每个表中都有一个ID列,但是无论如何,这似乎都不会暴露于我. 有人有任何建议吗? 解决方案 -[NSManagedObject objectID]是核心数据中对象实例的唯一ID.它可以通过-[NSManagedObjectID URIRepresentation]序列化.您可以从-[NSPersistentStoreCoordinator managedObjectIDForURIRepresentation:]的持久存储协调器中检索objectID,然后从-[NSManagedObjectContext objectWithID:]的托管对象上下获取对象. 但是 您应该记住,核心数据是不是.这是一个对象图管理框架.这是使用SQLite(和唯一的行ID)作为后端纯粹是实现细节.您越早可以摆脱SQL/RDBMS的心态,您对核心数据的满
0 2023-12-18
编程技术问答社区
如何像Xcode建议那样从列表中搜索(Predicate)内容?
我认为每个人都注意到Xcode建议列表.检查此屏幕截图 根据Apple文档未提供预期的Ouptut . NSPredicate *inPredicate = [NSPredicate predicateWithFormat: @"attribute CONTAINS[cd] %@", aCollection]; 仅提供连续搜索文本. 这是可能的,如何搜索这样的内容? 解决方案 可能的解决方案是为此使用正则表达式.我们只需要在每个字母(以及字符串之前和之后)之间插入.*,这意味着"任何字符(除线终止者除外)".看来这就是用于Xcode完成的搜索. NSMutableArray *letters = [[NSMutableArray alloc] init]; [searchString enumerateSubstringsInRange:NSMakeRange(0, [searchString length])
4 2023-12-18
编程技术问答社区
NSPredicate for Array of Dictionaries
我有一个 Array Item 0 -- Dictionary Sport -- String Mens -- Array Item 0 -- Dictionary Name -- String Rules -- String Description -- String Womens -- Array Item 0 -- Dictionary Name -- String Rules -- String Description -- String Item 1 -- Dictionary And so on..... 我想创建一个nspredicate搜索,如果名称内包含一个给定的字符串.我该如何达到这么深? 如果您无法理解图形.我有一个装满词典的数组,字典内部是字符串,一系列字典和一系列字典,字典内部是
0 2023-12-18
编程技术问答社区
iOS共享扩展如何支持*。wav文件
作为标题所述,我希望我的扩展名在用户共享 *.wav文件 时出现 我遇到了以下Apple文档: https://developer.apple.com/library/ios/documentation/general/coneptual/conectual/extensibilitypg/extensionscenarios.html#/ 我试图弄清楚如何实际使用文档中提到的内容来做到这一点.文档使我感到我最需要的最具我所需要的碎片,但没有它们的方式. 我知道我很可能必须构建一个"子查询(..)"陈述,但是它在哪里?我如何使用它? 解决方案 我最终做了以下操作: 对于nsextensiveActivationRule键,我将类型从字典更改为字符串,然后输入以下字符串(您可以保持格式化,不需要全线插入): SUBQUERY ( extensionItems, $extensionItem, SUBQUERY ( $e
2 2023-12-16
编程技术问答社区
忽略空白处的NSPredicate
我需要使用nspredicate匹配两个不敏感的串,不敏感的,和不敏感的. . 谓词看起来像这样: [NSPredicate predicateWithFormat:@"Key ==[cdw] %@", userInputKey]; " W'修饰符是发明的,可以表达我想使用的东西. 我不能仅修剪userInputKey,因为数据源"键"值可能也有空格(它们需要那些空格,我不能事先修剪它们). 例如,给定userInputKey" abc"谓词应匹配所有 {"abc", "a b c", " a B C "} ,依此类推.给定userInputKey" a b c"谓词也应匹配上面集合中的所有值. 这不难做到吗? 解决方案 如何定义这样的内容: + (NSPredicate *)myPredicateWithKey:(NSString *)userInputKey { return [NSPredicate predica
2 2023-12-03
编程技术问答社区
va_list, CVaListPointer, AnyObject ..., CVarArgType的区别和用处是什么?
问题 有人可以解释这些参数类型之间的差异吗?此外,如果可能的话,请使用代码提供适当的用例(值得1000个字). nota bene 请在评论中让我知道是否需要更多信息. 背景 我试图理解以下构造之间的任何差异,并了解适当的用例(如果有的话,则有示例).我已经搜索过,Google等人. (博客圈)没有找到令人满意的答案. 在编写数据存储对象时,我遇到了以下NSpredicate的以下初始化器: Swift标头文件(1.2)注释: 博客评论指示在Objective-C 中使用以下va_list的用法 + (void) log:(NSString *) format arguments:(va_list) argList { [self logString: [NSString stringWithFormat: format arguments: argList]]; } + (void) log:(NSString *) for
6 2023-11-13
编程技术问答社区
用正则表达式验证电话号码-Ph. 格式 (974) 041-0475
我必须验证以下格式的电话号码 (974) 041-0475 我已经尝试了Regex @"^+(?:[0-9] ?){6,14}[0-9]$",但它不适用于上述示例.它适用于普通数字. 解决方案 US Phone Number Validation NSString *unformatted = textField.text;//pass textfield object with text property NSArray *stringComponents = [NSArray arrayWithObjects:[unformatted substringWithRange:NSMakeRange(0, 3)], [unformatted substringWithRange:NSMakeRange(3, 3)], [unform
0 2023-11-13
编程技术问答社区
使用UUID的Swift 5 CoreData谓词
我有一个实体,我将一些ID设置为UUID对象. 而且我有此功能可以检查它是否已经记录在持久商店中. 我找到了一些示例的示例,这些示例不起作用,因为示例使用了一些'NSPredicate(format: "%K == %@", #KeyPath(attribute), id)'代码,这些代码在swift中不起作用. 所以我试图弄清楚我是如何在Swift中进行的.我希望不作为简单字符串存储UUID,因为Coredata让我们保存UUID对象. 我有这种方法,但是它正在崩溃在NSPREDICATE系列上: static func isKnownBikeID(_ bleID: UUID) -> Bool { let context = A18DataStore.shared.viewContext let fetchRequest = NSFetchRequest(entityName: "Bike") fetch
6 2023-11-12
编程技术问答社区
在iOS的表视图中进行动态搜索
我已经实现了搜索方法tableview和文本字段.现在,当我在textfield中编写一些值并单击搜索按钮时,然后在tableview中搜索.但是,我希望它是动态的,这意味着我开始在textfield中键入时应该开始搜索而不单击任何button. 我该怎么做? 解决方案 只需在TextField的Editing Changed Event上连接此方法.因此,当您更改其值时,该方法被调用. - (IBAction)txtValueChanged:(UITextField)sender { [self dynamicSearchInto:sender.text]; //From here, we are passing text of textField. } 在这里,allData是array,其中包含您的所有数据. searchArray是一个仅包含搜索数据的数组.因此,请确保,您必须将计数设置为searchArray的计数,为tableview'
0 2023-11-05
编程技术问答社区
设置NSPredicate时UITableView不刷新
前言:我尝试了[self.tableview reloadData].我的应用不会崩溃,但也不会刷新. 我正在尝试在一组TableViewController上显示2组结果,这取决于是否设置了NSPredicate.我试图找到一个术语免费答案,一旦设置谓词,我如何更新UITableViewController. 当视图最初加载时,我的数据正确显示.我的谓词设置了正确的设置,我在返回值中列出的所有日志语句...但是设置时什么都没有发生. 我知道这是一个非常愚蠢的问题,但是我太愚蠢了.我发现的每个答案都涉及UISearchBar,弃用的方法,或者是答案的摘要等. 我想显示的内容: 1)一个显示所有内容的香草fetchrequest - 我的托管boctextext中的所有内容都在我的viewDidLoad w/o an NSPredicate中设置为. . 2)一旦我设置NSPredicate,我想更新tableView - 这不会崩溃,但不会更新table
2 2023-11-05
编程技术问答社区
帮助解决表视图中的字典阵列问题
这有点令人困惑,所以请忍受我. 我有一个字典的数组(listofstates). Listofstates具有此结构的位置: {stateName} - {stateCapital} {Alabama} - {Montgomery} {Alaska} - {Juneau} {Arizona} - {Phoenix} ... {West Virginia} - {Charleston} {Wisconsin} - {Madison} {Wyoming} - {Cheyenne} 这是用于获取每个美国州(stateName)的第一个字母的代码,以按字母顺序分组: listOfStates = [[NSArray alloc] init]; stateIndex = [[NSMutableArray alloc] init]; NSMutableArray *tempArray = [[NSMutableArray alloc] init]; for (NSDict
6 2023-11-05
编程技术问答社区
tableView:didSelectRowAtIndexPath: 调用当前视图的解析器代表
我有一些非常有趣的逻辑,基本上我有这些数据,我想检查一下 在显示下一个视图之前..以防万一数据是空的,我想弹出视图,如果数据不是空的,则我要加载视图以将其显示在导航堆栈上. 因此,在我的tableview:didSelectRowatIndExpath中:方法,当选择选择时,获取当前的选择ID号,以便我可以将数据IM的值限制为仅分析为相关值. . 这是我方法内的代码的样子. #pragma mark - Table view delegate - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { ///... This stuff is for context.. //Get the subview ready for use VSRViewController *v
0 2023-11-05
编程技术问答社区
使用核心数据的UISearchBar性能问题
当我使用UISearchBar并将某些内容作为搜索字符串写入时,整个搜索事物会变得有些laggy .我的猜测是,我在主线程中弄乱了UI的内容和核心数据,但我可能错了.更重要的是,我将一个实体用于所有这些东西,因此没有关系等.该表中有3321个对象,并且该应用程序大约消耗 12至14 MB的RAM 您可以看到的东西在下面的屏幕截图上: 我认为这会更有效率,因为3321个对象并不多.对于所有核心数据信息,我都使用,但是没有什么比源代码更有价值的,所以您可以去: #import "GroupsViewController.h" #import "CashURLs.h" #import "Group.h" #import @interface GroupsViewController () { NSPredicate *resultPredicate; UIRefreshControl *refreshControl; } @pr
10 2023-11-05
编程技术问答社区