The circular references caused by the mutual reference between block and self are understood by everyone. On the following code (intercept section)
__weak typeof (self) weakself = self;
Self.jsbridgefunctiondic = @{
Jsbridgecallnativepage:
^ (Nsdictionary *data) {
NSLog (@ "Jsbridgecallnativepage");
Nsdictionary *params = [Data dictionaryforkey:@ "params"];
if (params) {
NSString *url = [params stringforkey:@ "url"];
if (Url.length > 0) {
Open a new page
}else {
Nsassert (YES, @ "URL cannot be empty"); }
}
}
}
There seems to be no problem, but the page does not release, puzzled no fruit, casually point to the code of Nsassert this assertion, found inside unexpectedly included a self. It is the circular reference caused by the goods.
Not much to say, please use Nscassert.
Be careful, assertions may cause you to make circular references Nsassert