ios - Objective-C - 类似于 CLLocationCoordinate2DMake 的自定义结构 'make' 方法

标签 ios objective-c struct

我在单独的头文件中编写了自定义结构。看起来像这样

typedef struct RequestSpecifics {
    BOOL includeMetaData;
    BOOL includeVerboseData;
} RequestSpecifics;

现在我想创建一个自定义的“make”方法,类似于 CoreLocation 结构 CLLocationCoordinate2 CLLocationCoordinate2DMake 方法。

我尝试了两种不同的方法。虽然这两种方法都不会在 .h 文件中出现错误,但当我想使用 make 方法时确实会出错。

方法一:

extern RequestSpecifics RequestSpecificsMake(BOOL includeMetaData, BOOL includeVerboseData);

抛出:

Apple Mach-O Linker

"_RequestSpecificsMake", referenced from:

Error Linker command failed with exit code 1 (use -v to see invocation)

方法二:

extern RequestSpecifics RequestSpecificsMake(BOOL includeMetaData, BOOL includeVerboseData) {
    RequestSpecifics specifics;
    specifics.includeMetaData = includeMetaData;
    specifics.includeVerboseData = includeVerboseData;
    return specifics;
}

抛出:

Apple Mach-O Linker

Error Linker command failed with exit code 1 (use -v to see invocation)

使用示例:

RequestSpecificsMake(NO, NO)

我检查了所有 common solutions对于 Apple Macho-Linker 错误,但似乎没有任何效果或解决方案不相关。

那么我该如何正确实现结构的“make”方法呢?

最佳答案

显然方法 2 应该是实现,它不应该在 .h 文件中。当然,我还需要一个 .m 文件。这应该是正确的方法:

.h文件

RequestSpecifics RequestSpecificsMake(BOOL includeMetaData, BOOL includeVerboseData);

.m 文件

RequestSpecifics RequestSpecificsMake(BOOL includeMetaData, BOOL includeVerboseData) {
        RequestSpecifics specifics;
        specifics.includeMetaData = includeMetaData;
        specifics.includeVerboseData = includeVerboseData;
        return specifics;
    }

最后我不得不结合这两种方法!此外,从外观上看,extern 关键字不是必需的。

关于ios - Objective-C - 类似于 CLLocationCoordinate2DMake 的自定义结构 'make' 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44716880/

相关文章:

iphone - 将 NSData 数组写入文件

swift - Swift 中的动态/运行时调度,或 "the strange way structs behave in one man' 的意见”

ios - 为什么像 KIF 这样的功能测试框架中没有条件语句?

ios - 无论如何要在两个 View 之间使用 CATransition 时删除淡入淡出?

ios - 如何在iOS应用程序中运行可执行文件?

ios - Segues 和 viewDidLoad/viewDidUnload 方法

iphone - 当 UIImageView.image 设置 2-3 次时应用程序崩溃

objective-c - 有没有办法从字符串反射调用 Objective-C 中的函数?

c - 无法将结构指针分配给内存数组

c - 使用指针将结构体数组传递给函数