将类Object引用传递给另一个类然后尝试使用它是行不通的

时间:2013-07-17 02:44:01

标签: ios objective-c methods nsobject

我试图通过另外两个对象类传递我当前的NSObject类的引用,这样我就可以访问我调用的原始NSObject类的当前初始化。

我将尽可能简单地概述为什么我这样做。我有3个NSObject类和一个appDelegate。

  1. 的AppDelegate
  2. RemoteSites
  3. EngineRequest
  4. EngineReasponse
  5. 这是应用程序的逻辑流程

    Appdelegate.m
    calls RemoteSites method "GetRemoteSites" this method reutrns a BOOL for confirmation
    
    RemoteSites.m
    -(BOOL)GetRemoteSites {
    // calls EngineRequests method like so
    EngineRequests *engineRequests = [[EngineRequests alloc] init];
    [engineRequests GetRemoteSites:self];
    
    //..
    }
    
    EngineRequests.m
    
    - (void)GetRemoteSites:(NSObject *)myObjectClass {
     // get everything ready to send off request
    }
    
    send off request then return recived data + NSObject refrence to EngineReasponse
    
    EngineReasponse.m
    - (void)GetRemoteSites:(NSData *)receivedData Object:(NSObject *)requestingClass
    {
    // pass requestingClass to a NSObject var that will later be used to pass the data back to the original class that started the request
     requestingClassObject = requestingClass
    }
    
    //..
    [requestingClassObject GetRemoteSitesNow:reducedDataPacket]; // GetremoteSitesNow is a method inside RemoteSites class, however using requestingClassObject I cannot see any of the classMethods my class has in it
    //..
    

    这就是我想要完成的流程的整体流程,重点是尝试获取 - (BOOL)GetRemoteSites向AppDelegate返回Yes。

    总之,我的问题就是这样。为什么我不能从EngineReasponse访问RemoteSites方法,我已经正确地传递了类对象参考我认为但由于某种原因我无法访问这些方法。

    非常感谢任何解决我的问题的帮助。

1 个答案:

答案 0 :(得分:1)

EngineRequests.m

- (void)GetRemoteSites:(id)remoteSites {
 // create your class object here or globally.  

RemoteSites *remotesite = (RemoteSites*)remoteSites

}

EngineReasponse.m

- (void)GetRemoteSites:(NSData *)receivedData Object:(id)requestingClass
{

RemoteSites *requestingClassObject = (RemoteSites*)requestingClass
}


//
[requestingClassObject GetRemoteSitesNow:reducedDataPacket]; 
//

抱歉打字错误。希望它会有所帮助。