簡體   English   中英

如何在結構定義中定義CGPoints數組?

[英]How to define array of CGPoints within a struct definition?

我想做這個:

typedef struct
{
    CGPoint vertices[];
    NSUInteger vertexCount;
} Polygon;

但它說Field has incomplete type CGPoint []

你需要做兩件事之一:

  1. 聲明數組是固定大小(可能不是你想要的)
  2. 把它變成指針。 但是你需要正確地malloc並根據需要free數組。

更好的選擇是不使用struct而是創建完整的類。 然后,您可以添加方法和屬性,以及使內存管理更容易。 您正在使用Objective-C。 利用該語言的面向對象方面。 添加一種方法來計算周長和面積等。將邏輯放在它所屬的位置。

設置數組大小CGPoint vertices[count];

您是否想要為結構的每個元素使用唯一的名稱? 如果你只是想要一個CGPoint的數字順序,能夠計算它們中的多少,你可以通過在NSArray或NSMutableArray(當然存儲為NSValue)中推送它們來獲得更好的服務

結構的重點是通過描述性名稱輕松訪問值,即:

typedef struct {
    CGPoint helpfulAndDescriptiveNameOne;
    CGPoint helpfulAndDescriptiveNameTwoWhichIsDifferentThanTheOtherName;
    etc...
    NSUInteger vertexCount;
}

例如,CGRect只是一個由四個不同的CGFloats組成的結構,每個CGFloats都具有描述性和有用的命名:

typedef {
    CGFloat x;
    CGFloat y;
    CGFloat width;
    CGFloat height;
} CGRect;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM