我正在尝试使用NSMutableDictionary来存储4次触摸的X和Y值,如Apple的事件处理指南所示(http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/Introduction/Introduction.html)
我的代码是:
- (void)cacheBeginPointForTouches:(NSSet *)touches {
if ([touches count] > 0) {
for (UITouch *touch in touches) {
CGPoint *point = (CGPoint *)CFMutableDictionaryGetValue(_TouchesDict, touch);
if (point == NULL) {
point = (CGPoint *)malloc(sizeof(CGPoint));
CFDictionarySetValue(_TouchesDict, touch, point);
}
*point = [touch locationInView:_view.superview];
}
}
}
然而,我不断收到这样的编译器错误:
Undefined symbols for architecture i386:
"_CFMutableDictionaryGetValue", referenced from:
-[ViewController cacheBeginPointForTouches:] in ViewController.o
"_OBJC_IVAR_$_UIViewController._view", referenced from:
-[ViewController cacheBeginPointForTouches:] in ViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
有人对我可能做错了什么有什么建议吗?
谢谢!
用CFDictionaryGetValue
替换CFMutableDictionaryGetValue
。CFMutableDictionaryGetValue
函数对我来说似乎很奇怪。我认为它不存在