{"action":"created","issue":{"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1782","labels_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1782/labels{/name}","comments_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1782/comments","events_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1782/events","html_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/issues/1782","id":58890104,"number":1782,"title":"RACObserve doesn't work with @strongify/@weakify","user":{"login":"bangerang","id":3526934,"avatar_url":"https://avatars.githubusercontent.com/u/3526934?v=3","gravatar_id":"","url":"https://api.github.com/users/bangerang","html_url":"https://github.com/bangerang","followers_url":"https://api.github.com/users/bangerang/followers","following_url":"https://api.github.com/users/bangerang/following{/other_user}","gists_url":"https://api.github.com/users/bangerang/gists{/gist_id}","starred_url":"https://api.github.com/users/bangerang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bangerang/subscriptions","organizations_url":"https://api.github.com/users/bangerang/orgs","repos_url":"https://api.github.com/users/bangerang/repos","events_url":"https://api.github.com/users/bangerang/events{/privacy}","received_events_url":"https://api.github.com/users/bangerang/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-02-25T11:53:44Z","updated_at":"2015-02-25T21:13:06Z","closed_at":null,"body":"I having some problems understanding what I'm doing wrong here. My ```RACObserve``` only works if I don't use the @strongify/@weakify pattern. Why is that? \r\nWhat I'm trying to achieve here is having two timers running, when one of them stops, the other one starts and so on. Also, if there's are more elegant way to do this, please tell me :)\r\n\r\nCode:\r\n```\r\n{\r\n    [RACObserve(self, currentIntervalTime) subscribeNext:^(id x) {\r\n//        only called if I dont use @weakify/@strongify\r\n    }];\r\n    [RACObserve(self, currentIntervalRest) subscribeNext:^(id x) {\r\n//        only called if I dont use @weakify/@strongify\r\n    }];\r\n    [self startIntervalTime];\r\n}\r\n-(void)startIntervalTime\r\n{\r\n//    @weakify(self)\r\n\r\n    [[self timerSignalWithTime:self.intervalTime] subscribeNext:^(id x) {\r\n       \r\n//        @strongify(self)\r\n        self.currentIntervalTime = x;\r\n    } completed:^{\r\n        \r\n//        @strongify(self) \r\n        [self startRestTime]; //this will trigger the other timer\r\n    }];\r\n}\r\n-(void)startRestTime\r\n{\r\n//    @weakify(self)\r\n    [[self timerSignalWithTime:self.intervalRest] subscribeNext:^(id x) {\r\n        \r\n//        @strongify(self)\r\n        self.currentIntervalRest = x;\r\n    } completed:^{\r\n//        @strongify(self) \r\n        [self startIntervalTime]; //this will trigger the other timer\r\n        \r\n    }];\r\n}\r\n-(RACSignal *)timerSignalWithTime:(NSUInteger)time\r\n{\r\n    NSDate *date = [NSDate date];\r\n    return [[[[RACSignal interval:1 onScheduler:[RACScheduler scheduler]] startWith:[NSDate date]] takeWhileBlock:^BOOL(NSDate *value) {\r\n        NSTimeInterval timeInterval = [value timeIntervalSinceDate:date];\r\n        return timeInterval <= time;\r\n    }] map:^id(NSDate *value) {\r\n        NSUInteger remainingTime = time - [value timeIntervalSinceDate:date];\r\n        NSUInteger minutes = remainingTime / 60;\r\n        NSUInteger seconds = remainingTime % 60;\r\n        return [NSString stringWithFormat:@\"%02lu:%02lu\",(unsigned long)minutes, (unsigned long)seconds];\r\n    }];\r\n}\r\n```"},"comment":{"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/comments/76060144","html_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/issues/1782#issuecomment-76060144","issue_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1782","id":76060144,"user":{"login":"jspahrsummers","id":432536,"avatar_url":"https://avatars.githubusercontent.com/u/432536?v=3","gravatar_id":"","url":"https://api.github.com/users/jspahrsummers","html_url":"https://github.com/jspahrsummers","followers_url":"https://api.github.com/users/jspahrsummers/followers","following_url":"https://api.github.com/users/jspahrsummers/following{/other_user}","gists_url":"https://api.github.com/users/jspahrsummers/gists{/gist_id}","starred_url":"https://api.github.com/users/jspahrsummers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jspahrsummers/subscriptions","organizations_url":"https://api.github.com/users/jspahrsummers/orgs","repos_url":"https://api.github.com/users/jspahrsummers/repos","events_url":"https://api.github.com/users/jspahrsummers/events{/privacy}","received_events_url":"https://api.github.com/users/jspahrsummers/received_events","type":"User","site_admin":true},"created_at":"2015-02-25T21:13:06Z","updated_at":"2015-02-25T21:13:06Z","body":"If your object is deallocating—for example, because there are no strong references to it—you won't receive any values from `RACObserve`."}}