objective c - drawLayer:inContext - Unrecognized selector sent to instance -
i'm trying create uiviewcontroller draws layer , works fine if uiviewcontroller main one. however, if try initialize inside controller , add it's view sub view of main controller's view results in following error:
-[__nscftype drawlayer:incontext:]: unrecognized selector sent instance 0x155140 here relevant code custom uiviewcontroller (pdfpageviewcontroller):
- (void)loaddocument:(pdfdocument *)document { self._document = document; cgrect pagerect = cgrectintegral(cgpdfpagegetboxrect(self._document.page, kcgpdfcropbox)); pagerect.origin.x = (self.view.frame.size.width / 2) - (pagerect.size.width / 2) - 35; catiledlayer *tiledlayer = [catiledlayer layer]; tiledlayer.delegate = self; tiledlayer.tilesize = cgsizemake(1024.0, 1024.0); tiledlayer.levelsofdetail = 1000; tiledlayer.levelsofdetailbias = 1000; tiledlayer.frame = pagerect; contentview = [[uiview alloc] initwithframe:pagerect]; [contentview.layer addsublayer:tiledlayer]; cgrect viewframe = self.view.frame; viewframe.origin = cgpointzero; uiscrollview *scrollview = [[uiscrollview alloc] initwithframe:viewframe]; scrollview.delegate = self; scrollview.contentsize = pagerect.size; scrollview.maximumzoomscale = 1000; [scrollview addsubview:contentview]; [self.view addsubview:scrollview]; nslog(@"%@", self); // checking if there's nothing overwriting layer's delegate } - (uiview *)viewforzoominginscrollview:(uiscrollview *)scrollview { return contentview; } - (void)drawlayer:(calayer *)layer incontext:(cgcontextref)ctx { if(self._document) { cgcontextsetrgbfillcolor(ctx, 1.0, 1.0, 1.0, 1.0); cgcontextfillrect(ctx, cgcontextgetclipboundingbox(ctx)); cgcontexttranslatectm(ctx, 0.0, layer.bounds.size.height); cgcontextscalectm(ctx, 1.0, -1.0); cgcontextconcatctm(ctx, cgpdfpagegetdrawingtransform(self._document.page, kcgpdfcropbox, layer.bounds, 0, true)); cgcontextdrawpdfpage(ctx, self._document.page); } } the drawlayer method there , calayer's delegate self.
and how call on main controller:
pageviewcontroller = [[[pdfpageviewcontroller alloc] initwithnibname:null bundle:null] autorelease]; [pageviewcontroller loaddocument:self.document]; [self.view addsubview:[pageviewcontroller view]]; am not doing proper way? can't understand why works fine if draw layer on main controller , results on error if draw made on pdfviewcontroller. method in there, delegate self. why selector failing?
[re-posted comments because turned out answer!]
this sounds memory management problem. have tried nszombieenabled? there chance you've over-released something? using arc?
Comments
Post a Comment