【问题标题】:Return a CGAffineTransform from a function从函数返回 CGAffineTransform
【发布时间】:2011-04-28 02:43:53
【问题描述】:

我有一个实例方法,我想返回一个 CGAffineTransform。我目前收到错误

Semantic Issue: Initializing 'CGAffineTransform' (aka 'struct CGAffineTransform') with an expression of incompatible type 'id'

我的方法名

- (CGAffineTransform)getEllipse

我的呼唤

CGAffineTransform t = [self getEllipse];

任何帮助都会很棒。

【问题讨论】:

    标签: ios objective-c struct core-animation quartz-graphics


    【解决方案1】:

    您是否确保在调用它的代码可见的某个地方声明了该方法?即,如果:

    - (CGAffineTransform)getEllipse;
    

    在 MyFoo.h 中,而 MyBar.m 包含:

    CGAffineTransform t = [self getEllipse];
    

    那么 MyBar.m 需要#import "MyFoo.h"。在无法看到声明的情况下,调用代码将假定该方法返回一个未知类型的对象,即id

    【讨论】:

    • 哈,成功了。我只是在写一些测试代码,所以我不用担心在我的头文件中定义我的方法。我知道您不必在标头中声明每个方法。这只是一个问题,因为它没有返回一个对象。我什至尝试在我的调用中转换返回值 - 但我不确定你是否可以使用结构进行转换。任何澄清都会很棒。
    • @Brian:如果编译器在没有看到先前声明的情况下到达方法定义,则假定返回类型为id。 (可能不止这些——我不是专家。)你不能转换结构,不。有关详细信息,请参阅此 SO 问题:stackoverflow.com/questions/2752989/…
    猜你喜欢
    • 1970-01-01
    • 2013-05-15
    • 2016-08-28
    • 2021-12-09
    • 2015-01-26
    • 2018-05-19
    • 2014-12-05
    • 2014-06-23
    • 2015-01-24
    相关资源
    最近更新 更多