0

我正在尝试在 UIView 类别中使用 MTAnimatedLabel 类(https://github.com/mturner1721/MTAnimatedLabel)(scalessec 的 iOS Toast 来自这里:https ://github.com/scalessec/Toast )

我知道我可能需要使用 Obj-C 相关引用。这是我正在尝试的方法:

    MTAnimatedLabel *existingTestLabel = (MTAnimatedLabel *)objc_getAssociatedObject(self, &testLabelKey);
if(existingTestLabel != nil) return;

MTAnimatedLabel *testLabel = [[[MTAnimatedLabel alloc] initWithFrame:testFrame] autorelease];
testLabel.text = [NSString stringWithFormat:@"Test String."];
NSLog(@"testLabel: %@", testLabel.text);
objc_setAssociatedObject(self, &testLabelKey, testLabel, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
[self addSubview:testLabel];
[testLabel startAnimation];

它在这一行出现 EXC_BAD_ACCESS 失败:

    MTAnimatedLabel *testLabel = [[[MTAnimatedLabel alloc] initWithFrame:testFrame] autorelease];

我的 testLabelKey 定义为:

static char const * const testLabelKey = "testLabel";

我的 testLabel 属性在接口中声明为:

@property (nonatomic, retain) MTAnimatedLabel *testLabel;

谁能发现我做错了什么,或者提出不同的方法?谢谢!

4

0 回答 0