我有10個泛識別器,並希望分配給類屬性。 如何增加for()循環中的屬性名稱的數值部分?如何增加for()循環中的屬性名稱的數值部分?
for (int i=0; i < [_myArray count]; i++)
{
myClassInstance.recognizer = pangesture + i ?? // doesn't work of course. but how??
}
我有10個泛識別器,並希望分配給類屬性。 如何增加for()循環中的屬性名稱的數值部分?如何增加for()循環中的屬性名稱的數值部分?
for (int i=0; i < [_myArray count]; i++)
{
myClassInstance.recognizer = pangesture + i ?? // doesn't work of course. but how??
}
這不是虛幻形式 - 絕對服從迦勒的意見儘可能 - 但如果你真的被逼到牆角:
for(int i = 0; i < [_myArray count]; i++)
{
NSString *nameOfProperty = [NSString stringWithFormat:@"pangesture%d", i];
UIPanGestureRecognizer *recogniser = [self valueForKey:nameOfProperty];
}
這是使用key-value coding; IBOutlet
必須符合KVC標準,否則將無法加載NIB。
我已經10個識別器和要指派給類屬性。 我如何增加for()循環中的屬性名稱的數字部分?
我不知道我完全理解你的問題,但假設你有你想要使用循環分配給10個對象通過g10
命名g1
10所手勢識別,一個好的辦法是把這10個手勢識別到一個數組,然後進行使用當前指標分配:
NSArray *recognizers = @[g1, g2, g3, g4, g5, g6, g7, g8, g9, g10];
if ([recognizers count < [_myArray count]) {
NSLog("Houston, we have a problem! Not enough gesture recognizers to go around.");
}
for (int i=0; i < [_myArray count]; i++)
{
myClassInstance.recognizer = recognizers[i]; // note the fancy "new" array access syntax!
}
如果你不單獨分配手勢識別器,那麼你可以創建一個雖然每次循環:
for (MyClass *instance in _myArray) {
instance.recognizer = [[UIGestureRecognizer alloc] init...];
}
是的,這是我一直在尋找!謝謝! – alexhajdu