相关疑难解决方法(0)

Cocoa/Objective-C中的全局变量?

根据Cocoa Programming for Mac OS X,3rd Edition,第202页(第13章):

您将在应用程序的多个类中注册,读取和设置默认值.为了确保始终使用相同的名称,您应该在单个文件中声明这些字符串,然后简单地#import该文件到您使用名称的任何文件中.有几种方法可以做到这一点.例如,您可以使用C预处理器的#define命令,但大多数Cocoa程序员为此目的使用全局变量.

这真的是最正确的最佳做法吗?全局变量?这对我来说似乎很疯狂 - 反对我曾经教过的一切.

更好的设计是一个简单的Singleton类,并定义了这些?或者走向全球是否真的是最佳做法?考虑到许多人认为单身人士穿着漂亮的连衣裙是全球性的吗?

cocoa global-variables objective-c

19
推荐指数
3
解决办法
6万
查看次数

错误 - 架构arm64的2个重复符号?

我有一个BConstants.h文件,我把我的项目的所有常量.该文件如下:

#ifndef asdf_BConstants_h
#define asdf_BConstants_h

typedef NS_ENUM(NSUInteger, BTheme) {
    kField
};

typedef NS_ENUM(NSUInteger, BItem) {
    kBox
};

typedef NS_ENUM(NSUInteger, BMovementState) {
    kTouchUp,
    kTouchDown
};

#endif
Run Code Online (Sandbox Code Playgroud)

当我将以下三行添加到此文件时,我会在将文件#import编辑到另一个.m文件时收到后续错误

...

NSString * const kHero = @"Hero";
NSString * const kCount = @"Count";

#endif
Run Code Online (Sandbox Code Playgroud)

错误:

duplicate symbol _kHero in:
...list of .o files
duplicate symbol kCount in:
...list of .o files
2 duplicate symbols for architecture arm64
Run Code Online (Sandbox Code Playgroud)

我已经查看过已经发布的问题,我说我compile sources的应用程序中可能有重复的文件target,但是我检查过,我发现没有重复的文件.这个问题还来自哪里,是否在BConstants.h文件中包含了这两个NSString常量?

xcode objective-c

2
推荐指数
1
解决办法
6768
查看次数

标签 统计

objective-c ×2

cocoa ×1

global-variables ×1

xcode ×1