title: Signal is already bound to key path
body: <p>I'm quite new to RAC and run into the following issue.</p>
  
  <p>I bind a NSArray property of object to a signal that fetches some json payload from a webservice like this:</p>
  
  <pre><code>- (void)updateRandomUserData
  {
      RAC(self, users) = [[[self fetchRandomUserData] map:^(NSDictionary *json) {
          NSMutableArray *randomUsers = [NSMutableArray array];
          for (NSDictionary *dict in json[@"data"]) {
              BKRandomUser *randomUser = [MTLJSONAdapter modelOfClass:[BKRandomUser class] fromJSONDictionary:dict error:nil];
              [randomUsers addObject:randomUser];
          }
          return randomUsers;
      }] catch:^(NSError *error) {
          return [RACSignal return:@[]];
      }];
  }
  </code></pre>
  
  <p>I see this is working as intented when I call that from the viewDidLoad of the proper view controller:</p>
  
  <pre><code>[[[RACObserve(self.randomUserManager, users) deliverOn:RACScheduler.mainThreadScheduler] filter:^BOOL(NSArray *users) {
              return users.count &gt; 0;
          }] subscribeNext:^(NSArray *newUsers) {
              @strongify(self);
              self.loggedOutDataSource.items = newUsers;
              if (self.refreshControl.refreshing) {
                  [self.refreshControl endRefreshing];
              }
              [self.tableView reloadData];
          }];
  
          [self.randomUserManager updateRandomUserData];
  </code></pre>
  
  <p>However when I want to call that <code>[self.randomUserManager reloadManager]</code> at a later point during the view controller's lifecycle I get a crash saying:</p>
  
  <blockquote>
    <p><em>*</em> Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Signal  name: [[[+createSignal:] -doError:] -map:] -catch: is already bound to key path "users" on object , adding signal  name: [[[+createSignal:] -doError:] -map:] -catch: is undefined behavior'</p>
  </blockquote>
  
  <p>I assume the problem is that when calling <code>[self.randomUserManager updateRandomUserData]</code> it's trying to bind the NSArray property again.</p>
  
  <p>So I guess the question is how can I avoid binding the property several times but still be able to use the signal that was created to call the method?</p>