这两天遇到问题,我们的FMX项目,其中一个功能在windows上运行正常,在Android上不正常。
查到最后,竟然是同事没有处理一个函数的返回值造成的。
function Test(aName:string):TObject;
var
o:TObject;
begin
...
if aName='123' then
begin
o:=TObject.Create;
result:=o;
end;
end;
类似上面的代码,在windows上,当aName<>123时,返回nil,而在android上,则不返回nil。修正如下:
function Test(aName:string):TObject;
var
o:TObject;
begin
result:=nil;//修正.
...
if aName='123' then
begin
o:=TObject.Create;
result:=o;
end;
end;
印象中写过有大牛写过,必须养成处理函数默认返回值的习惯。这回被现实上了一课!
来源:https://www.cnblogs.com/kinglandsoft/p/12461701.html