我有一个名为VideoListViewController
的类,它是一个抽象类(即仅用于子类化)。现在我想在ShareViewController
和MyVideosViewController
中进行扩展。例如,在Python中将是
class VideoListViewController (UIViewController):
# implementation
class ShareViewController (VideoListViewController):
# implementation
class MyVideosViewController (VideoListViewController):
# implementation
我拥有的是:
// VideoListViewController.h
@interface VideoListViewController : UIViewController
// interface declaration
@end
// ShareViewController.h
#import "VideoListViewController.h"
@interface ShareViewController : VideoListViewController
// ^ this line shows an error
// interface declaration
@end
但这不会编译(Cannot find interface declaration for 'VideoListViewController', superclass of 'ShareViewController'
)。
我该如何解决这个问题?
答案 0 :(得分:1)
如果“VideoListViewController”类未编译并且本身有错误,因此无法由另一个类扩展,则会发生这种情况。请尝试以下方法 -
// VideoListViewController.h
#import <UIKit/UIKit.h>
@interface VideoListViewController : UIViewController
@end
3。检查目标成员资格中是否包含“VideoListViewController.m”。要检查这一点,请在导航器中选择VideoListViewController.m文件并打开文件检查器。在“目标成员资格”下,应检查您正在构建的目标。如果没有检查。在创建提供此选项的文件时,您可能已经忘记了这一点。
4.这可能是循环引用的问题。确保在超类中没有子类的任何头文件。和VideoListViewController.h中的#import ShareViewController.h一样。如果你有,也可以查看任何@class引用。
答案 1 :(得分:0)
您可以通过在VideoListViewController
中实现指定的初始化程序(init方法)并从中返回nil
来完成此操作。然后它将成为一个抽象类。