相关疑难解决方法(0)

链接到Cocoa/Xcode中的常量文件

在stackoverflow上参考这个相关的问题:

如果您创建一个常量文件,如何在目标中"链接"它,所以您不必这样做

#import "Constants.h"
Run Code Online (Sandbox Code Playgroud)

在每个文件中你使用常量?

xcode cocoa cocoa-touch objective-c

4
推荐指数
1
解决办法
2633
查看次数

Objective-C常量:NSString比较使用==?

我发现有关设置NSString常量的讨论让我按以下方式编写代码:

.h文件:

extern NSString * const kSectionHeaders;
Run Code Online (Sandbox Code Playgroud)

.m文件:

NSString * const kSectionHeaders = @"header";
Run Code Online (Sandbox Code Playgroud)

当程序运行时,它必须根据一系列NSString常量测试文本文件中的单词.

我读取内存比较应该在设置如上所述的功能时起作用:

if (property == kSectionHeaders) {...}
Run Code Online (Sandbox Code Playgroud)

不起作用:(以下工作,但它被描述为一个糟糕的解决方案(较慢,还有什么?):

if ([property isEqualToString:kSectionHeaders]){...}
Run Code Online (Sandbox Code Playgroud)

我觉得我做错了什么.但看不出来的是什么!请帮忙:-)谢谢!J.

constants equals objective-c string-comparison nsstring

4
推荐指数
2
解决办法
2036
查看次数

访问类中的常量而不在ObjectiveC中创建类的实例

下面的 C# 类仅用于保持常量。所以我们可以使用类名访问每个所以'Constants.DIR_ARCHIVE'将给出'Archive'。

如何在 ObjectiveC 中定义下面的 C# 类?

 public class Constants
{
//Resource Directory Names
public const string DIR_ARCHIVE = "Archive";
public const string DIR_DEPARTMENTS = "Departments";
public const string DIR_FORMS = "Forms";
public const string DIR_GOAL_TRACKING = "GoalTracking";
public const string DIR_ROLES = "Roles";
public const string DIR_HOMEWORK = "HomeWork";
public const string DIR_POSTINGS = "Postings";
public const string DIR_SIGNUP = "SignUp";
public const string DIR_SITE_CONFIG = "System";
public const string DIR_PORTFOLIO = "Portfolio";
public const string DIR_MEMBERDEFINITION = …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c nsstring class-constants ios

4
推荐指数
2
解决办法
2906
查看次数

iOS:拥有全局字符串的最佳方式 - 通知名称

我一直在阅读关于此的不同内容,这看起来很危险.有人可以告诉我正确的模式来定义可以全局使用的通知字符串吗?我尝试过的所有内容都会导致链接器错误.例如,在我的GlobalVariables单例中,我添加了:

#import <Foundation/Foundation.h>
extern NSString *kMPTimeChanged;

@interface GlobalVariables : NSObject etc. 
Run Code Online (Sandbox Code Playgroud)

然后在init中:

@implementation GlobalVariables

#pragma mark Singleton Methods

+ (id)sharedGlobals {
    static GlobalVariables *sharedGlobals = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedGlobals = [[self alloc] init];

    });
    return sharedGlobals;
}

- (id)init {
    if (self = [super init]) {

      kMPTimeChanged=@"kMPTimeChanged";

    return self;
}
Run Code Online (Sandbox Code Playgroud)

它没有构建,我有多个错误.

cocoa-touch global-variables objective-c ios

4
推荐指数
1
解决办法
3423
查看次数

Objective C具有case/switch的全局常量

有没有办法在Objective C中使用case/switch语句中的全局int常量?这里的技术(http://stackoverflow.com/questions/538996/constants-in-objective-c)让我可以在任何地方访问常量,但不允许我将它们放入switch语句中.

在.h

FOUNDATION_EXPORT const int UNIT_IDLE;
FOUNDATION_EXPORT const int UNIT_DEFEND;
Run Code Online (Sandbox Code Playgroud)

在.m

int const UNIT_IDLE = 0;
int const UNIT_DEFEND = 1;
Run Code Online (Sandbox Code Playgroud)

错误是"表达式不是整数常量表达式"

constants objective-c switch-statement ios

3
推荐指数
1
解决办法
6029
查看次数

CFStringRef适合常量?

我想定义一些常量,并考虑使用#define构造,如下所示:

#define kUpdateTeamNotification CFSTR("kUpdateTeamNotification")
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我去使用它时:

[[NSNotificationCenter defaultCenter] postNotificationName:kUpdateTeamNotification object:team];
Run Code Online (Sandbox Code Playgroud)

我得到一个不兼容的指针类型警告.我的印象CFSTR基本上与@""字符串相同.我理解错了吗?

objective-c

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

使用#define 常量放在 swift 项目中桥接的 Objective C .h 文件中

我正在处理一个 swift 项目,并且我已经创建了 MyProjectName-Bridging-header.h 在这个桥中,我添加了一个包含多个常量的 .h 文件

#define constantName VALUE
Run Code Online (Sandbox Code Playgroud)

我需要知道如何在我的 swift 文件中使用这些常量?

bridge objective-c ios swift

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

在Objective-C XCode中将常量链接到pch时出错

我正在尝试按照这里的答案将一些常量链接到我在XCode中的iOS应用程序.我创建了一个这样的Constants.h头文件:

//  Constants.h
//  myApp

extern NSString * const tumblrConsumerKey;
extern NSString * const tumblrConsumerSecret;
Run Code Online (Sandbox Code Playgroud)

和一个这样的Constants.m实现文件:

//  Constants.m
//  myApp

#import "Constants.h"
NSString * const tumblrConsumerKey = @"keyiskey";
NSString * const tumblrConsumerSecret = @"secret";
Run Code Online (Sandbox Code Playgroud)

然后我将它添加到myApp-Prefix.pch预编译头的顶部:

// Prefix header for all source files of the 
// 'myApp' target in the 'myApp' project
//
#import <Availability.h>
#import "Constants.h"
Run Code Online (Sandbox Code Playgroud)

现在我在Constants.h文件中的声明extern NSString * const等的行中出现错误:

Expected '=', ',', ';', 'asm' or '__attribute__' before 
'*' token in /Users/me/Documents/iPhone Programs/myApp/myApp/Constants.h
Run Code Online (Sandbox Code Playgroud)

看起来我的Constants.m文件已添加到myApp的目标中.我究竟做错了什么?

iphone objective-c ios

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

为什么我需要使用“extern static”在 Objective-C 的头文件中定义一个常量?

我知道使用静态常量定义常量比使用#define 更好。

但是在这个SO question 中,为什么**extern** static const在头文件中使用,并编写另一个 m 文件来实际定义该值。为什么不只static int const kMyVar = 1;在头文件中使用而不再使用m 文件呢?

static constants objective-c extern

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

如何在目标c中声明常量

我需要在我的应用程序中声明两个不同的常量,一个是简单的字符串,另一个需要是uint32.

我知道有两种不同的声明常量的方法如下

#define VERSION 1; //I am not sure how this works in regards to uint32.. but thats what I need it to be.
Run Code Online (Sandbox Code Playgroud)

NSString * const SIGNATURE = @"helloworld";
Run Code Online (Sandbox Code Playgroud)

有没有办法做一个应该是uint32的版本,如下面的nsstring decliration?

比如说像

UInt32 * const VERSION 1;
Run Code Online (Sandbox Code Playgroud)

如果是这样的话?如果没有,我如何确保#define版本的类型为uint32?

任何帮助,将不胜感激

iphone ios

0
推荐指数
1
解决办法
1018
查看次数

类的.de文件中的Typedef枚举常量?

我正在编写一个iPhone应用程序,并按照此问题中的建议将常量排列在Constants.h和Constants.m文件中:Objective-C中的常量.

我的问题是,如果我在Constants.h中定义一个typedef枚举,并想在我的一个.h文件中声明该typedef枚举的属性,那么实现它的正确方法是什么?我是否需要将constdef枚举移出Constants.h和类.h文件?似乎打败了拥有全局常量文件的目的......

iphone cocoa-touch design-patterns objective-c ios

0
推荐指数
1
解决办法
1366
查看次数