gpt4 book ai didi

objective-c - 从数组获取字符串以调用方法

转载 作者:行者123 更新时间:2023-11-30 16:01:28 24 4
gpt4 key购买 nike

我正在尝试从数组中获取调用中的字符串。但运气不好。它正在被传递给另一个类。

MainClass.h
#import First
@class First;

@interface MainClass : UIViewController{
NSMutableArray *listArray;
}
///////////////////
MainClass.m

First *first = [[First alloc] init];

listArray = [[NSMutableArray alloc]init];
[listArray addObject:@"first"];
[listArray addObject:@"second"];

int Aslot = 0;
int sumA;
float level = 5, insample = 10;

NSString *slotA =[listArray objectAtIndex:ASlot];

sumA = [slotA out:insample andlevels:level];

/////////
First.h
-(float)out:(float)insample andlevels:(float)level;

First.m
-(float)out:(float)insample andlevels:(float)level{

float outsample = insample + 10 * level;

return outsample;
}

我希望 slotA(类)等于数组“first”或“second”中的字符串,以便它可以调用该方法。

我有一个表,当我首先选择它时,它会将样本和其他参数发送到另一个类,在另一个类中进行处理,然后返回到 MainClass。

sumA = [first out:insample andlevels:level];

但是我收到一条错误消息,指出 NSString 可能不会响应我的参数 out:andlevels。请帮忙..

最佳答案

编辑:

如果我理解正确的话,您想要动态创建一个类的实例,该类的名称已存储为 NSString。您可以这样做:

int Aslot = 0;
int sumA;
float level = 5, insample = 10;

NSString *className = [listArray objectAtIndex:Aslot];
Class sampler = objc_getClass([className UTF8String]);
id instance = [[sampler alloc] init];
sumA = [instance out:insample andlevels:level];

// Do whatever you want with sumA here.

[instance release];

如果您经常这样做,您可能想要保留实例或将类存储在数组中而不是它们的名称,具体取决于您正在做什么。

关于objective-c - 从数组获取字符串以调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6550665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com