Я написал синглтон под названием SomeValues, где я инициализирую массив foo NSMutableArray. Затем я попытался написать функцию SetBFSV, чтобы установить значения этого массива из разных управляющих представлений.
@interface SomeValues : NSObject {
NSMutableArray *foo;}
+ (SomeValues *) sharedInstance;
@implementation
...
- (void) SetBFSV:(char)lbl ToVal:(long)BFSvl{
NSNumber *ValueBFSvl = [NSNumber numberWithLong:BFSvl];
NSString *Strlbl = [[NSString alloc] stringWithFormat:@"%s",lbl];
[foo setValue:ValueBFSvl forKey:Strlbl];
}
Я знаю, что setValue требует NS-объекта как для значения, так и для ключа, но я не могу объявить свою функцию как
(void) SetBFSV:(NSString)lbl ToVal:(NSNumber)BFSvl
потому что он не компилируется с ошибкой: «Невозможно использовать объект в качестве параметра метода».
В одном ControlView я написал тогда этот кусок кода:
SomeValues *myBFSV = [SomeValues sharedInstance];
const unsigned char *Bar = (unsigned char *)[@"Label1" UTF8String];
NSLog(@"The string %s", Bar);
[myBFSV SetBFSV:Bar ToVal:2.5];
При компиляции я получаю предупреждение в последней строке:
предупреждение: передача аргумента 1 из SetBFSV: ToVal: делает целое число из указателя без приведения
Какое целое число? Я становлюсь глупым, осматривая это. При запуске я получаю распечатку из NSLog, но сразу после этого программа явно вылетает с этой ошибкой:
'NSInvalidArgumentException', причина: '- [NSPlaceholderString stringWithFormat:]: нераспознанный селектор, отправленный экземпляру 0x4e03280'
Очевидно, что я передаю что-то не так в stringWithFormat, но я не могу понять, что.
Спасибо за любую помощь. Хорошего дня!
/ Luca