Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 目标C:在一个简单的应用程序中为多个视图控制器使用单个对象_Ios_Objective C - Fatal编程技术网

Ios 目标C:在一个简单的应用程序中为多个视图控制器使用单个对象

Ios 目标C:在一个简单的应用程序中为多个视图控制器使用单个对象,ios,objective-c,Ios,Objective C,完全公开,我不是程序员。我实际上是一个外科项目的住院医师,在我的研究生涯中,我对编程产生了兴趣,而最近Ipad在临床实践中的使用增加了我对编程的兴趣。换言之,请原谅我的无知或坏习惯,因为这不是我通常从事的领域,我已经为这个问题挣扎了一段时间 我正在写一个小应用程序来做一些与我的临床实践相关的具体计算。基本要点是,我正在使用一个选项卡式应用程序,它至少有两个选项卡,每个选项卡都有单独的视图控制器。对于我的应用程序,我创建了一个对象来执行所有计算和管理所有患者数据。我的问题在于,我似乎找不到一种策略

完全公开,我不是程序员。我实际上是一个外科项目的住院医师,在我的研究生涯中,我对编程产生了兴趣,而最近Ipad在临床实践中的使用增加了我对编程的兴趣。换言之,请原谅我的无知或坏习惯,因为这不是我通常从事的领域,我已经为这个问题挣扎了一段时间

我正在写一个小应用程序来做一些与我的临床实践相关的具体计算。基本要点是,我正在使用一个选项卡式应用程序,它至少有两个选项卡,每个选项卡都有单独的视图控制器。对于我的应用程序,我创建了一个对象来执行所有计算和管理所有患者数据。我的问题在于,我似乎找不到一种策略,让所有视图控制器都可以访问我创建的类的实例,该类用于执行计算和管理数据。我曾尝试将实例的初始化放在appdelegate m文件中,并将其导入每个控制器,但重复声明会导致多个错误。我尝试将它放在一个视图控制器的m文件中,并将其导入到第二个视图控制器中,但出现了相同的编译错误。我尝试在appdelegate头文件中声明实例并导入它,但视图控制器似乎无法识别它

无论如何,我可能在这个策略上完全错了,但如果这是可能的话,任何方向或替代策略都将被感激。另外,可能我读取的编译器错误不正确:

重复符号_OBJC_IVAR_$_AppDelegate.\u窗口位于: /Users/Joshua/Library/Developer/Xcode/DerivedData/NutritionAppAlpha cgnuaytpdjbxqfediwqybepqfbte/Build/Intermediates/NutritionAppAlpha.Build/Debug iphonesimulator/NutritionAppAlpha.Build/Objects normal/i386/AppDelegate.o /Users/Joshua/Library/Developer/Xcode/DerivedData/NutritionAppAlpha cgnuaytpdjbxqfediwqybepqfbte/Build/Intermediates/NutritionAppAlpha.Build/Debug iphonesimulator/NutritionAppAlpha.Build/Objects normal/i386/FirstViewController.o 重复符号_OBJC_元类$\u AppDelegate位于: /Users/Joshua/Library/Developer/Xcode/DerivedData/NutritionAppAlpha cgnuaytpdjbxqfediwqybepqfbte/Build/Intermediates/NutritionAppAlpha.Build/Debug iphonesimulator/NutritionAppAlpha.Build/Objects normal/i386/AppDelegate.o /Users/Joshua/Library/Developer/Xcode/DerivedData/NutritionAppAlpha cgnuaytpdjbxqfediwqybepqfbte/Build/Intermediates/NutritionAppAlpha.Build/Debug iphonesimulator/NutritionAppAlpha.Build/Objects normal/i386/FirstViewController.o 重复符号_OBJC_CLASS_$_AppDelegate,位于: /Users/Joshua/Library/Developer/Xcode/DerivedData/NutritionAppAlpha cgnuaytpdjbxqfediwqybepqfbte/Build/Intermediates/NutritionAppAlpha.Build/Debug iphonesimulator/NutritionAppAlpha.Build/Objects normal/i386/AppDelegate.o /Users/Joshua/Library/Developer/Xcode/DerivedData/NutritionAppAlpha cgnuaytpdjbxqfediwqybepqfbte/Build/Intermediates/NutritionAppAlpha.Build/Debug iphonesimulator/NutritionAppAlpha.Build/Objects normal/i386/FirstViewController.o 重复符号_OBJC_IVAR_$_AppDelegate.\u窗口位于: /Users/Joshua/Library/Developer/Xcode/DerivedData/NutritionAppAlpha cgnuaytpdjbxqfediwqybepqfbte/Build/Intermediates/NutritionAppAlpha.Build/Debug iphonesimulator/NutritionAppAlpha.Build/Objects normal/i386/AppDelegate.o /Users/Joshua/Library/Developer/Xcode/DerivedData/NutritionAppAlpha cgnuaytpdjbxqfediwqybepqfbte/Build/Intermediates/NutritionAppAlpha.Build/Debug iphonesimulator/NutritionAppAlpha.Build/Objects normal/i386/SecondViewController.o 重复符号_OBJC_元类$\u AppDelegate位于: /Users/Joshua/Library/Developer/Xcode/DerivedData/NutritionAppAlpha cgnuaytpdjbxqfediwqybepqfbte/Build/Intermediates/NutritionAppAlpha.Build/Debug iphonesimulator/NutritionAppAlpha.Build/Objects normal/i386/AppDelegate.o /Users/Joshua/Library/Developer/Xcode/DerivedData/NutritionAppAlpha cgnuaytpdjbxqfediwqybepqfbte/Build/Intermediates/NutritionAppAlpha.Build/Debug iphonesimulator/NutritionAppAlpha.Build/Objects normal/i386/SecondViewController.o 重复符号_OBJC_CLASS_$_AppDelegate,位于: /Users/Joshua/Library/Developer/Xcode/DerivedData/NutritionAppAlpha cgnuaytpdjbxqfediwqybepqfbte/Build/Intermediates/NutritionAppAlpha.Build/Debug iphonesimulator/NutritionAppAlpha.Build/Objects normal/i386/AppDelegate.o /Users/Joshua/Library/Developer/Xcode/DerivedData/NutritionAppAlpha cgnuaytpdjbxqfediwqybepqfbte/Build/Intermediates/NutritionAppAlpha.Build/Debug iphonesimulator/NutritionAppAlpha.Build/Objects normal/i386/SecondViewController.o ld:6架构i386的重复符号clang:错误:链接器 命令失败,退出代码为1(使用-v查看


处理此问题的最简单方法是共享实例设计模式。假设您要共享的类名为
Calculator

//Calculator.h
@interface Calculator : NSObject

+ (instancetype)sharedCalculator;

@end
为了实现共享实例,我们使用
static
关键字来确保始终使用相同的对象

//Calculator.m
@implementation

+ (instancetype)sharedCalculator
{
    static Calculator sharedInstance = nil;
    if (!sharedInstance)
    {
        sharedInstance = [[Calculator alloc] init];
    }
    return sharedInstance;
}

@end

现在,在任何需要使用计算器的地方,只需使用
[calculator sharedCalculator]
而不是创建类的新实例。

您必须包含代码。否则,此问题将在几分钟后结束。请确保您正在导入
AppDelegate.h
而不是
AppDelegate.m
。请参阅:当您使用“全局”时,可能会出现此类错误多个类定义中的变量。全局变量与静态变量(类变量)看起来没有太大区别,但它们是在@interface/@end或@implemenation@end这同样适用于函数(在本例中不是方法)。虽然它们是在单独的.m文件中定义的,因此编译器在编译时不可见(并且编译器无法检测到),但它们位于全局范围内。链接器