Код Delphi / FPC больше не компилируется в XCode после обновления до XE2 Update 2 - PullRequest
1 голос
/ 04 ноября 2011

Я написал приложение для iOS, использующее Delphi XE2 (Firemonkey) для вызова веб-службы.

Код перестал компилироваться, так как я применил Delphi XE2 Update 2 - (Ранее я использовал обновление 1). Я также обновил XCode до 4.2 и iOS5, однако я думаю , которые с тех пор скомпилированы нормально (не уверен на 100%). Поэтому я не могу с уверенностью устранить его как подозреваемого.

Это фрагмент кода, который ранее компилировался нормально (и работал тоже хорошо!) В xcode с использованием FPC. Я применил на Mac обновления FPC и Firemonkey XE2.

TSynWebServices_iOS = objcclass(NSURLConnection)
private
  reqURL:     NSURL;
  reqPacket:  NSMutableURLRequest;
  webData:    NSMutableData;
public
  function  init: id; override;
  procedure dealloc; override;
  //
  procedure connection_didReceiveResponse(connection: NSURLConnection;
                                          response: NSURLResponse); override;
  procedure connection_didReceiveData(connection: NSURLConnection; data: NSData); override;
  procedure connection_didFailWithError(connection: NSURLConnection; error: NSError); override;
  procedure connectionDidFinishLoading(connection: NSURLConnection); override;
end;

Теперь я получаю следующие ошибки ...

SynWebServices_iOS_Unit.pas(44,15) Error: There is no method in an ancestor class to be overridden: "TSynWebServices_iOS.connection_didReceiveResponse(NSURLConnection,NSURLResponse);"
SynWebServices_iOS_Unit.pas(46,15) Error: There is no method in an ancestor class to be overridden: "TSynWebServices_iOS.connection_didReceiveData(NSURLConnection,NSData);"
SynWebServices_iOS_Unit.pas(47,15) Error: There is no method in an ancestor class to be overridden: "TSynWebServices_iOS.connection_didFailWithError(NSURLConnection,NSError);"
SynWebServices_iOS_Unit.pas(48,15) Error: There is no method in an ancestor class to be overridden: "TSynWebServices_iOS.connectionDidFinishLoading(NSURLConnection);"
SynWebServices_iOS_Unit.pas(44,15) Error: Objective-C messages require their Objective-C selector name to be specified using the "message" directive.
SynWebServices_iOS_Unit.pas(44,15) Error: Mismatch between number of declared parameters and number of colons in message string.
SynWebServices_iOS_Unit.pas(46,15) Error: Mismatch between number of declared parameters and number of colons in message string.
SynWebServices_iOS_Unit.pas(47,15) Error: Mismatch between number of declared parameters and number of colons in message string.
SynWebServices_iOS_Unit.pas(48,15) Error: Mismatch between number of declared parameters and number of colons in message string.
SynWebServices_iOS_Unit.pas(56,1) Fatal: There were 9 errors compiling module, stopping
Fatal: Compilation aborted

Глядя на то, что кажется включаемым файлом для FPC - 'NSURLConnection.inc' - эти методы не определены для NSURLConnection, однако они определены для класса NSURLConnectionDelegateCategory.

Если вместо этого я попытаюсь унаследовать от NSURLConnectionDelegateCategory, класс не будет распознан.

Кто-нибудь еще сталкивался с этой проблемой или сумел использовать NSURLConnection под XE2, обновление 2?

Спасибо

1 Ответ

0 голосов
/ 06 ноября 2011

Этот вопрос был дан ответ здесь ... (методы были перемещены)

https://forums.codegear.com/thread.jspa?threadID=63537&tstart=0

...