ios - 如何创建一个类别来扩展 CGPaths?

标签 ios cocoa-touch cgpath

我想创建一个类别来“扩展”CGPath 的“类别”并添加更多功能。因为 CGPath 不是 ObjectiveC 的常规对象,我该怎么做?

请原谅我对c/c++的了解不足

最佳答案

很简单,您只需编写 C 函数即可。不过,您应该注意名称冲突,因此请为函数名称添加前缀。如果您需要一个从 NSData* 或 sth 创建 CGPath 的函数。像这样,您只需声明并实现一个名为 RDCGPathCreateWithData(NSData *data) 的 C 函数(使用 RubberDuck 的 RD 前缀;D)。

在你的头文件中,只需声明函数,并在实现文件中实现它们。对于我的示例,这看起来像这样:

RDCGPath.h

#ifndef RDCGPATH_H
#define RDCGPATH_H

CGPathRef RDCGPathCreateWithData(NSData *data);
// any other function declarations

#endif

RDCGPath.m

#include "RDCGPath.h"

CGPathRef RDCGPathCreateWithData(NSData *data) {
    //...
}

// imlementation of other functions

.h 文件中的预处理器指令称为包含保护。它们可以防止您因多次使用相同的声明而出错。

关于ios - 如何创建一个类别来扩展 CGPaths?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18772856/

相关文章:

ios - Swift 中的毫秒数

iphone - 在 Objective-C 中是否有一个好的/最好的方法来扩展嵌套类?

swift - 如何重用 UIViewRepresentable UIKit 组件?

ios - 如何将图像从 tableView 传输到另一个 imageViewController?

swift - 如何在 SKShapeNode 中动画化 CGPath 的转换?

swift - 重复 SKAction 起始位置更改

ios - 具有最新 Ti SDK 9.0.3 GA 的 Firebase 分析存在 screen_view 问题

ios - 迁移到 xcode 7 后,cocoa pods 库停止工作

ios - UITableView dataSource 必须从 tableView :cellForRowAtIndexPath eror 返回一个单元格

ios - 获取 UIBezierPath IOS 的面积和周长