ios - 如何为 segue 引用 NSPredicate 的 "%@"?

标签 ios objective-c nspredicate

<分区>


想改进这个问题吗? 通过 editing this post 添加细节并澄清问题.

关闭 6 年前

我有一个类似于 How To Implement Search Bar in iOS 7 Using Storyboard 的 NSPredicate :

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope {
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText]; 
    searchResults = [recipes filteredArrayUsingPredicate:resultPredicate]; 
}

我正在尝试获取 %@ 以使用 self.searchText 将其传递到我的下一个 View ;

但这似乎不起作用。

如何为segue引用NSPredicate的%@

继续:

if ([segue.identifier isEqualToString:@"Twotwo"]) {

    Two *two2 = [segue destinationViewController];
    two2.searchText = self.searchText;`

并在 viewDidLoad 中

    _searchText=self.searchText;

编辑:

基本上,我的目标是从 TestViewController 获取 searchText 字符串以传递给 segue 上的 Two。

TestViewController.h

@property(nonatomic, copy) NSString *searchText;

TestViewController.m

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"(one beginswith[c] %@) OR (two beginswith[c] %@) OR (three beginswith[c] %@)", searchText, searchText, searchText];
    searchResults = [cdh filteredArrayUsingPredicate:resultPredicate]; }

二.h

@property(nonatomic, copy) NSString *searchText;

最佳答案

你根本不应该使用谓词,在问题中提到它会让每个人都感到困惑。看起来您已经有一个属性来存储您要使用的搜索词,您只是没有更新它。您应该有:

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope {
    self.searchText = searchText;
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText]; 
    searchResults = [recipes filteredArrayUsingPredicate:resultPredicate]; 
}

而且看起来您可以删除 viewDidLoad 中的行(看起来您再次感到困惑,因为您直接访问实例变量的内存并将其设置为返回的值通过同一实例变量的 getter...)

关于ios - 如何为 segue 引用 NSPredicate 的 "%@"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38169118/

上一篇:ios - 如何在 iOS 9.0 或更高版本中将 tableview 单元格转换为带阴影的圆角

下一篇:ios - 获取用户在 iOS 上下载的应用列表

相关文章:

MacOS:NSPredicate 查找 "one to one"关系不为零的地方

ios - 在 viewDidLoad() 之前调用 UITableViewController 委托(delegate)方法

ios - UITableView 和 UITextField borderColor 问题

ios - 使用圆形按钮创建关卡选择屏幕

ios - 使用 NSOperation 在 NSOperationQueue 中运行并行代码

objective-c - 如何防止 xcode 将 <# #> 视为代码片段占位符

objective-c - iOS 中的 CVSurf (OpenCV) 功能

ios - 使用 NSPredicate 过滤 NSArray 始终为 null

ios - 为什么Cocos2d 3.4没有install.sh或者install-templates.sh文件

cocoa - 重新获取 NSFetchedResultsController 有什么作用吗?