Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c -[ImageScrollView index2]:发送到实例的选择器无法识别_Objective C_Cocoa_Crash_Selector - Fatal编程技术网

Objective c -[ImageScrollView index2]:发送到实例的选择器无法识别

Objective c -[ImageScrollView index2]:发送到实例的选择器无法识别,objective-c,cocoa,crash,selector,Objective C,Cocoa,Crash,Selector,我复制了我的一些方法,这样我可以有一个视图用于纵向模式,另一个视图用于横向模式。大多数情况下,它都起了作用,例如: - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientat ion duration:(NSTimeInterval)duration { UIInterfaceOrientation o = self.interfaceOrientation; if

我复制了我的一些方法,这样我可以有一个视图用于纵向模式,另一个视图用于横向模式。大多数情况下,它都起了作用,例如:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientat  ion duration:(NSTimeInterval)duration {
UIInterfaceOrientation o = self.interfaceOrientation;
if ((o == UIInterfaceOrientationPortrait) || (o == UIInterfaceOrientationPortraitUpsideDown))   {D = 1;[self setPaging];}
if ((o == UIInterfaceOrientationLandscapeLeft) || (o == UIInterfaceOrientationLandscapeRight))  {D = 2;[self setPaging];}}
我复制的方法上面的代码有效!但是下面的代码导致应用程序崩溃

 //-----------------------------------------------------------------------------*
 -(ImageScrollView*)imagescrollview{
if(imagescrollview == nil){
imagescrollview = [[viewClass alloc] initWithFrame:CGRectZero];}
return imagescrollview;}
//--*duplicate
-(ImageScrollView2*)imagescrollview2{
if(imagescrollview2 == nil){
imagescrollview2 = [[viewClass alloc] initWithFrame:CGRectZero];}
return imagescrollview2;}
//-----------------------------------------------------------------------------*
- (ImageScrollView *)dequeueRecycledPage{
ImageScrollView *page = [recycledPages anyObject];
if (page) {
    [[page retain] autorelease];
    [recycledPages removeObject:page];}
return page;}
//--*duplicate
- (ImageScrollView2 *)dequeueRecycledPage2{
ImageScrollView2 *page = [recycledPages anyObject];
if (page) {
    [[page retain] autorelease];
    [recycledPages removeObject:page];}
return page;}
NSLog@p4; 应用程序看起来好像在这里崩溃了!!我不确定是什么原因造成的,请告诉我


谢谢。

首先。。。wot?为什么要创建两个子类,一个是w/index,另一个是index2?这是非常令人困惑的,乍一看,鉴于标准的OO设计模式,这似乎是完全不必要的

这似乎也是你问题的根本原因。也就是说,您正在传递ImageScrollView的一个实例,您的意思是传递ImageScrollView的一个实例

我要做的第一件事就是去掉方法名上的所有2个废话。ImageScrollView2没有理由具有index2。见鬼,你甚至可以:

2010-08-22 03:02:36.532 PDFmag[31408:207] p4
2010-08-22 03:02:36.541 PDFmag[31408:207] *** -[ImageScrollView index2]: unrecognized   selector sent to instance 0x148d10
2010-08-22 03:02:36.551 PDFmag[31408:207] *** Terminating app due to uncaught exception   'NSInvalidArgumentException', reason: '*** -[ImageScrollView index2]: unrecognized selector  sent to instance 0x148d10'
2010-08-22 03:02:36.565 PDFmag[31408:207] Stack: (
864992541,
859229716,
864996349,
864492313,
864454720,
21249,
18449,
21417,
838908048,
839266120,
839260480,
864766485,
839108308,
839107980,
839226672,
839225216,
839206800,
839205012,
875886564,
864740651,
864738335,
875880904,
838872112,
838865456,
11645,
11560
)
terminate called after throwing an instance of 'NSException'
Program received signal:  “SIGABRT”.

实现抽象超类中的常见行为和两个子类中的独特行为,包括覆盖-displaytilemagenamed:size:,如果需要。

bbum,我照你说的做了,我喜欢这个想法,它非常整洁,但是

@interface ImageScrollView1 : AbstractImageScrollView
...
@end

@interface ImageScrollView2 : AbstractImageScrollView
...
@end

没有NSLog@p4在您发布的代码中,为什么不缩进代码?你想让它不可读吗?我们生活在TB级硬盘时代;不要担心几千个标签字符。我不需要这些吗@类ISVportrate@类是虚拟景观;对于同一个类,如果没有@接口,就不能有@实现。@interface是通常声明超类的地方。通常,您会将@interface放在一个头中并导入它,但听起来好像您将这个ISVportrate类塞进了其他类的实现文件中。
2010-08-22 03:02:36.532 PDFmag[31408:207] p4
2010-08-22 03:02:36.541 PDFmag[31408:207] *** -[ImageScrollView index2]: unrecognized   selector sent to instance 0x148d10
2010-08-22 03:02:36.551 PDFmag[31408:207] *** Terminating app due to uncaught exception   'NSInvalidArgumentException', reason: '*** -[ImageScrollView index2]: unrecognized selector  sent to instance 0x148d10'
2010-08-22 03:02:36.565 PDFmag[31408:207] Stack: (
864992541,
859229716,
864996349,
864492313,
864454720,
21249,
18449,
21417,
838908048,
839266120,
839260480,
864766485,
839108308,
839107980,
839226672,
839225216,
839206800,
839205012,
875886564,
864740651,
864738335,
875880904,
838872112,
838865456,
11645,
11560
)
terminate called after throwing an instance of 'NSException'
Program received signal:  “SIGABRT”.
@interface AbstractImageScrollView : UIScrollView <UIScrollViewDelegate> {
UIView        *imageView;
NSUInteger     index;
}
@property (assign) NSUInteger index;
- (void)displayTiledImageNamed:(CGPDFPageRef)page size:(CGSize)imageSize;
@end
@interface ImageScrollView1 : AbstractImageScrollView
...
@end

@interface ImageScrollView2 : AbstractImageScrollView
...
@end
@implementation ISVportrate : ImageScrollView 
warning: cannot find interface declaration for 'ISVportrate'
error: property 'index' attempting to use ivar 'index' declared in super class of 'ISVportrate'
error: request for member 'showsVerticalScrollIndicator' in something not a structure or union
error: request for member 'showsHorizontalScrollIndicator' in something not a structure or union
error: request for member 'bouncesZoom' in something not a structure or union
error: request for member 'clipsToBounds' in something not a structure or union
error: request for member 'decelerationRate' in something not a structure or union
error: request for member 'delegate' in something not a structure or union
error: request for member 'zoomScale' in something not a structure or union
error: request for member 'contentSize' in something not a structure or union
error: request for member 'maximumZoomScale' in something not a structure or union
error: request for member 'minimumZoomScale' in something not a structure or union
error: request for member 'zoomScale' in something not a structure or union