我在一个视图中有很多UISegmentedControls(实际上是74个),我希望使用RACChannel与它们各自的模型属性进行双向绑定。为了减少代码,我想在运行时使用IBOutletCollection的枚举来分配这些绑定。
为了使这项工作,我必须想出一种动态选择正确属性的方法。我的模型上有74个属性遵循以下命名约定:" item1a,item1b,item1c,item2a ..."。
在每个UISegmentedControl上,我都有一个属性" name",我可以在运行时提取,知道哪个控件应绑定到哪个属性。
我想做的基本上是
#include <stdio.h>
#include <stdlib.h>
struct node
{
int digit;
struct node* next;
};
void get_number(struct node** head);
int create_node(int digit, struct node** head);
void printlist(struct node* head);
int main()
{
struct node* head1 = malloc(sizeof(struct node*));
get_number(&head1);
printlist(head1);
return 0;
}
int create_node(int digit, struct node** head)
{
struct node* tmp = malloc(sizeof(struct node*));
tmp -> digit = digit;
tmp -> next = *head;
*head = tmp;
}
void printlist(struct node* head)
{
struct node* curr = head;
if(!head)
return;
while(curr != NULL )
{
printf("%d",curr -> digit);
curr = curr -> next;
}
}
void get_number(struct node** head)
{
int k;
char c;
c = getchar();
while(c != '\n' && c != ' ')
{
k = c - '0';
create_node(k, head);
c = getchar();
}
}
我可以通过
获取动态属性名称的值RACCHannelTerminal *modelTerminal = RACChannelTo(self, "DYNAMIC PROPERTY NAME");
但是这并没有给出要观察的实际属性,只是一个值。
有没有办法做所描述的事情?
答案 0 :(得分:1)
从文档中 - RACChanelTo - 只是一个宏,您可以将其重写为
RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php
RewriteRule ^index\.php$ / [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule doctor-(.*)\.htm$ doctor-details.php?doc_id=$1
RewriteRule hospital-(.*)\.htm$ hospital_detail.php?hosp_spec_id=$1
RewriteRule hotel-(.*)\.htm$ hotel_details.php?hotel_id=$1
RewriteRule destination-(.*)\.htm$ destination_details.php?dest_id=$1
RewriteRule news-(.*)\.htm$ news-details.php?news_id=$1
RewriteRule article-(.*)\.htm$ articles-details.php?article=$1
RewriteRule service-(.*)\.htm$ service-details.php?service_id=$1
RewriteRule user-register.php$ register.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]
#adds ".php" to a URL that isn't a directory or a file
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*)$ $1.php
因此,不要使用RACChanelTo(,)使用
NSString *predString = [NSString stringWithFormat:@"(foodName BEGINSWITH[cd] '%@')", @"sa"];
NSPredicate *pred = [NSPredicate predicateWithFormat:predString];
NSArray *array = [arr filteredArrayUsingPredicate:pred];
NSLog(@"%@", array);
警告
来自Reactive Cocoa标题
///不要直接使用它。使用上面的RACChannelTo宏。
定义RACChannelTo_(TARGET,KEYPATH,NILVALUE)\
[[RACKVOChannel alloc] initWithTarget:<#(NSObject *)#> keyPath:<#(NSString *)#> nilValue:<#(id)#>]
nilValue:(NILVALUE)] [@ keypath(RACKVOChannel.new,followTerminal)]
希望这有助于你