Опитвам се да напиша категория върху iTunesTrack със свързани обекти (NSMutableDictionary и NSNumber)
#import "iTunes.h"
#import <objc/runtime.h>
@interface iTunesTrack (dictionary)
- (NSMutableDictionary*) getDictionary;
- (NSNumber*) getScan;
- (BOOL)scanTrack:(NSString *)equationString;
@end
Това не успява:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_iTunesTrack", referenced from:
l_OBJC_$_CATEGORY_iTunesTrack_$_dictionary in iTunesTrack+dictionary.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Проверих два пъти дали рамката Scripting Bridge е добавена и дали файлът iTunesTrack+dictionary.m е прикачен към целта. Възможно ли е това да е някаква грешка при комбинирането на категории със Scripting Bridge?
Актуализация:
Ако заменя iTunesTrack с SBObject, това работи. Нямам представа защо обаче.
Актуализация 2:
Този проблем е възпроизводим:
- Създайте нов проект
- Добавете Scripting Bridge Framework и заглавния файл iTunes.h.
- Създайте нова категория на iTunesTrack с произволно име
- Уверете се, че
iTunesTrack+name.h
импортираiTunes.h
- Изграждане
Намерих тази страница, която описва използването на NSProxy и NSCache за съхраняване на iTunesTrack обекти. Ще бъде ли това по-добро решение от това да се опитвате да направите категория?