gpt4 book ai didi

ios - 将 NSString 转换为 Objective-C 控件

转载 作者:行者123 更新时间:2023-11-29 10:49:43 25 4
gpt4 key购买 nike

我想在 IOS(objective-c)上重现像 WPF 中那样的声明式编程。

在 WPF 中,我可以像这样使用控件:

<MediaElement Name="myVideo" Source="C:\WINDOWS\system32\oobe\images\ intro.wmv" Width="450" Height="400" >

确切的代码是:

MediaElement me = new MediaElement();
me.Id = "myVideo";
me.Height=450;
...

在 objective-C(IOS 7) 上可以用类似的方式完成吗?请举例或提示如何实现这一点。

是否有任何库可以实现我可以在 IOS7 中使用的复合模式?

编辑:这是一个真实的问题,如果可以的话,我想在真实的项目中实现它。

编辑 2:我想将 NSString 转换为 xib 文件并将其显示为 View 中的控件?

*编辑3:

我收到来自服务器的 JSON 格式的响应,如下所示:

{
"alignment" : "center",
"text" : "Just a text",
"type" : "label",
"textColor" : "black",
"width" : "300",
"height" : "44",
"backgroundColor" : "white",
"fontName" : "Helvetica",
"fontSize" : "15",
"x" : "75",
"y" : "200"
}

在执行文件中解释为:

UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(75, 200, 300, 44)];
label.backgroundColor = [UIColor whiteColor];
label.font = [UIFont fontWithName:@"Helvetica" size:15];
label.text = @"Just a text";
label.textAlignment = NSTextAlignmentCenter;
label.textColor = [UIColor blackColor];
[self.view addSubview:label];

最佳答案

根据您的问题标题,您似乎正在寻找一种“获取字符串并从中创建对象”的方法。

这是有可能的。我想您已经知道如何解析字符串。

如果你有类名,你总是可以创建对象。

id newObject =  [[NSClassFromString(@"classname") alloc] init];

Key 将是正在设置的属性的名称。

如果类是 KVC compliant您可以像设置词典条目一样设置它的属性。

[newObject setValue:@"John Doe" forKey:@"name"];

其中@"John Doe"和@"name"将是原始字符串的一部分 - 通过解析提取。

为 Q Edit2 添加:

如果您正在考虑制作自己的运行时 xib 文件,这些文件可以随时创建并用作适当的 xib 文件,那么您就不走运了。 “应用程序包中的应用程序附带”的 xib 文件已编译 (ibtool)。

您可以做的是创建您自己的“对象工厂”,它获取并解析文本文件并将其用作创建对象运行时的蓝图。如果结果应该是某种 UIView,您甚至可以使用 XML 或 JSON 格式来定义 View 间关系。

请注意,您不能使用在链接过程中遗漏的类。因此,您必须为您打算使用此“对象工厂”创建的所有类创建代码内虚拟实例。

编辑:但这也听起来您的应用可能会被拒绝,因为您的应用能够以某种方式“下载新代码”。

来自 App Store 审核指南:

2.7 Apps that download code in any way or form will be rejected

关于ios - 将 NSString 转换为 Objective-C 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20994554/

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