我正在为OS X重写一个应用程序(在VirtualBox中运行)。当我编译所有的对象都被释放。我是一名新手程序员,这是我的第一个mac应用程序,所以我甚至不能完全确定这是问题所在。
我已将RAD PAServer安装到OS X.在此终端中,我收到以下错误消息:
__NSAutoreleaseNoPool(): Object 0x4237a10 of class NSPathStore2 autoreleased with no pool in place - just leaking
__NSAutoreleaseNoPool(): Object 0x664dc3c of class NSCFString autoreleased with no pool in place - just leaking
这些只是大量变种或错误消息的两个示例,它们都以__NSAutoreleaseNoPool()开头。
在编译到OS X或Win32目标平台时,RAD Studio XE-5不会给出任何错误消息。
我希望能够充分告诉你。
更新
我已在表单中添加了TCalendarEdit。当我在OS X中单击它时,程序崩溃,我在PAServer终端中收到以下运行时错误消息:
malloc: *** error for object 0x127e99d4: incorrect checksum for freed object - object was probably modified after being freed.
更新2:
似乎并非每个对象都被释放。此代码有效:
procedure TForm4.Button1Click(Sender: TObject);
begin
label1.Text := 'bladibla';
end;
当我以这种方式重新创建TCalendarEdit功能时,一切都很好:
var
CalendarButton: TButton;
procedure TForm4.Button7Click(Sender: TObject);
begin
Calendar1.Visible := true;
Calendar1.Position.X := Button7.Position.X;
CalendarButton := Button7;
end;
procedure TForm4.Calendar1DateSelected(Sender: TObject);
begin
if CalendarButton = Button6 then
Button6.Text := DateToStr(Calendar1.Date);
if CalendarButton = Button7 then
Button7.Text := DateToStr(Calendar1.Date);
Calendar1.Visible := false;
end;