簡體   English   中英

可可中有整數矢量結構還是我應該定義自己的結構?

[英]Is there an integer vector struct in Cocoa or should I define my own?

我一直在跟蹤成對的int和NSUIntegers作為數組索引和其他東西。

是否已經有類似於CGPoint的定義?

如果有問題,我會在iPhone上做圖形處理。

NSIndexSet可以包含一堆索引並具有一些方便的操作API。

對於簡單的需求,您可以只定義一個結構,或者更好地聲明一個類。 我經常用一組@properties聲明一個類,@synthesizing所有的getters / setters來封裝數據。 簡單,非常少的代碼,並且簡化了以后添加功能的重構(即,如果您確定自己的結構確實想成為一個類)。

定義自己的結構來保存數據非常容易。 您可以使用CGPoint結構類型(其中NSPoint幾乎是#define別名),但是您確實需要定義其用途。

typedef struct _pair {
  int first,
  int second
} pair;

然后,您可以執行以下操作:

配對foo; foo.first = 1; foo.second = 2;

請注意,只有在元素數量固定的情況下,才有意義。 如果要查找一組元素,則確實需要一個整數數組。

CGPointNSPoint (注意,iPhone上沒有NSPoint )可以很好地工作,但您需要考慮使用這兩種方法的語義含義。 如果您確實在處理向量,那么應該使用它們。 但是,如果您僅處理結對索引,則可能需要聲明自己的結構或類。

如果確定只需要一個數據結構(也就是說,除了容納數據之外,沒有任何功能的東西),則聲明一個C結構。 它真的很簡單,並且比Objective-C類使用更少的內存。 但是,如果您希望它具有內置功能,請使用@bbum解釋的類。

暫無
暫無

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

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