gpt4 book ai didi

iOS 通用应用类架构

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:43:15 24 4
gpt4 key购买 nike

在通用应用中实现类的正确方法是什么?

我目前有两个 xib(每个设备一个),每个 xib 调用同一个类,在该类中我有一个条件语句检查当前运行应用程序的设备类型并为每个设备执行相应的代码。

我很困惑这是否是正确的结构,或者我是否必须创建一个基类然后为每个设备扩展该类以仅覆盖与每个设备对应的内容?

最佳答案

我个人尝试尽可能重用代码,但许多开发人员确实喜欢为 iPhone 和 iPad 版本创建单独的类以避免“意大利面条代码”。这完全取决于您正在编写的应用程序的复杂性。如果它是一个简单的应用程序,那么我认为没有理由只提供逻辑来测试设备并根据该逻辑执行不同的代码,而不是为每个应用程序创建多个类。尽管如此,为每个代码创建单独的代码有很多好处,例如单元测试或轻松更新 iPad 特定代码,反之亦然。我见过成功的开发人员使用这两种方法,并且如果您正确地记录和编译指示标记您的代码,那么这两种方法都能很好地工作。

Here是使用差异类的示例

如果输入完整的测试让人们感到困扰,您始终可以只创建一个返回设备类型的简单类。如果您想测试 iPod 和其他设备类型之类的东西,这会很方便。大多数情况下,这是我使用的方法,除非项目非常大并且类开始变得困惑。

// TestDevice.h
@interface TestDevice : NSObject

+ (BOOL)isIpad;

@end

// TestDevice.m
#import "TestDevice.h"

@implementation TestDevice

+ (BOOL)isIpad
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
return YES;

return NO;
}

@end

然后只需将它添加到您的 .pch 中,您就可以通过调用...在应用程序的任何地方重用它

if ([TestDevice isIpad]) {
// Something
}
else {
// Something else
}

关于iOS 通用应用类架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16448529/

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