Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.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 为什么可以';我不能初始化这个吗?_Objective C_Ios_Delegates - Fatal编程技术网

Objective c 为什么可以';我不能初始化这个吗?

Objective c 为什么可以';我不能初始化这个吗?,objective-c,ios,delegates,Objective C,Ios,Delegates,我已经想了好几天了。我是初学者,请耐心听我说。我读了很多关于授权的文章,但我还是不明白。任何帮助都将不胜感激 标题 @protocol MidiInit <NSObject> @end @interface CBAppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) id midiDelegate; -(id) initWithDelegate :(id <

我已经想了好几天了。我是初学者,请耐心听我说。我读了很多关于授权的文章,但我还是不明白。任何帮助都将不胜感激

标题

@protocol MidiInit <NSObject>
@end


@interface CBAppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) id midiDelegate;

-(id) initWithDelegate :(id <MidiInit>) delegate;

@end
@协议MIDINIT
@结束
@接口CBAppDelegate:UIResponder
@属性(强,非原子)id;
-(id)initWithDelegate:(id)delegate;
@结束
实施

@synthesize midiDelegate;

-(id) initWithDelegate:(id<MidiInit>)delegate
{
if ((self = [super init]))
{
    self.midiDelegate = delegate;
    midi = [[MidiClass alloc] initWithDelegate://not sure what to put here];
}
return self;
}
@delegate;
-(id)initWithDelegate:(id)delegate
{
if((self=[super init]))
{
self.midelegate=委托;
midi=[[MidiClass alloc]initWithDelegate://not 确定要在这里放什么];
}
回归自我;
}

了解您试图实现的目标会有所帮助,但从您向我们展示的内容来看,几乎所有事情都错了:-)

您正在给我们看应用程序代理吗?如果是这样,从应用程序委托中委托给另一个委托有什么意义?这看起来不像是一个标准的方法

其次,您可能不希望对委托进行“强”引用,这可能会导致内存泄漏


但老实说,我不认为这里真正的问题是你所指的太多,整个方法似乎是错误的。告诉我们更多关于您试图实现的目标,我将尝试相应地更新我的答案。

您想做什么?为您的MIDI类创建一个委托?是的,我有一个MIDI类,我正按照类作者的建议尝试用委托初始化它。