gpt4 book ai didi

iphone - 如何从 NSString 对象分配 Objective-C 中的类?

转载 作者:行者123 更新时间:2023-12-03 16:23:01 25 4
gpt4 key购买 nike

我有 PHP 背景,但我开始学习 Objective-C,以便我可以为 iPhone 开发应用程序。到目前为止,一切进展顺利,但在谷歌搜索和挖掘了许多不同的论坛后,我还没有找到并回答一个问题。

我的应用程序必须创建许多 View ,每个 View 都有自己独特的标题栏。为了做到这一点,我的代码对于每个 View 来说都是这样的:

    xViewController = [ [ XViewController alloc ] init ];
xNavController = [ [ UINavigationController alloc ]
initWithRootViewController: xViewController
];
xNavController.tabBarItem = [ [ UITabBarItem alloc ]
initWithTitle: @"My Info"
image: [ UIImage imageNamed: @"my_info.png" ]
tag: 3
];

这可行,但我想做的是创建一个方法,当将字符串作为消息发送时,该方法将返回导航 Controller ,因此我不必为每个 View 执行所有这些操作。我遇到的问题是第一行需要根据作为字符串传递给它的类名来分配一个对象(即 XViewController 需要从传递给该方法的字符串中获取),但我不知道如何将字符串视为类名。我知道这是可能的,因为 UIApplicationMain() 可以使用字符串来调用应用程序委托(delegate)类。我该怎么做?

如果这些内容没有意义,我很抱歉,我仍处于学习新语言的早期阶段!

最佳答案

除了使用运行时之外,您还可以使用 Cocoa-touch 方法来完成此操作:

NSString* theClassName = /* assume this exists */
Class theClass = NSClassFromString(theClassName);
NSObject* myObject = [[theClass performSelector:@selector(alloc)] init];
// do something with the new object instance

关于iphone - 如何从 NSString 对象分配 Objective-C 中的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1025909/

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