Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.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/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
Iphone 我的应用程序代理出现问题_Iphone_Objective C_Delegates - Fatal编程技术网

Iphone 我的应用程序代理出现问题

Iphone 我的应用程序代理出现问题,iphone,objective-c,delegates,Iphone,Objective C,Delegates,我正在尝试创建一个包含在应用程序委托中创建的类的应用程序。 我用以下命令初始化它: Mobile *tmp = [[Mobile alloc] init]; mobile = tmp; [tmp release]; 然后我尝试在我的应用程序的其他类中使用它: projectAppDelegate *delegate = (projectAppDelegate *)[[UIApplication sharedApplication] delegate];

我正在尝试创建一个包含在应用程序委托中创建的类的应用程序。 我用以下命令初始化它:

    Mobile *tmp = [[Mobile alloc] init];
    mobile = tmp;
    [tmp release];
然后我尝试在我的应用程序的其他类中使用它:

    projectAppDelegate *delegate = (projectAppDelegate *)[[UIApplication sharedApplication] delegate];
    mobile = delegate.mobile;
但是当我做一些类似的事情时:

[mobile enter:x :y];
它崩溃了

是否有我做错的事情,或者是否有任何解决方案来创建一个应用程序中所有其他类都可以使用的类


谢谢。

在您的第一个代码片段中,您有效地创建并立即销毁了对象。如果该对象应该在该方法执行完毕后继续存在,则只需使用

mobile = [[Mobile alloc] init];

如果要使用对象的实例,必须将它们存储为app delegate的属性

//appdelegate.h
//
//...
//
@interface AppDelegate : NSObject <UIApplicationDelegate> {
  Mobile *tmp;
}
//...

//appdelegate.m
//
//...
//
- (BOOL)application:(UIApplication *)application 
  didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  mobile = [[Mobile alloc]init];      
}
//...
-  (void)dealloc {
  [mobile release];
  [super dealloc];
//...
}

“enter”方法的签名是什么?您似乎缺少一个参数名。他没有输入enter方法,因为mobile为nil。我做错了什么?谢谢。我尝试使用以下命令从另一个类调用移动类中的方法:
projectAppDelegate*delegate=(projectAppDelegate*)[[UIApplication sharedApplication]delegate];Mobile*Mobile=delegate.Mobile;[移动输入:x:y]
他没有跳转到这个方法,你可能知道为什么吗?你可能有解决这个问题的方法吗?谢谢。我尝试用以下命令从另一个类调用我在Mobile类中的方法:
projectAppDelegate*delegate=(projectAppDelegate*)[[UIApplication sharedApplication]delegate];Mobile*Mobile=delegate.Mobile;[移动输入:x:y]//... Somewhere
AppDelegate* ref = (AppDelegate*) [[UIApplication sharedApplication] delegate];
NSLog(@"%@", [ref mobile]);
//...