相关疑难解决方法(0)

运行时与编译时iPhone版本检查

运行时(例如[[UIDevice currentDevice] systemVersion])和编译时之间有什么区别,例如__IPHONE_OS_VERSION_MIN_REQUIRED检查?什么时候你应该一个在另一个?

难道__IPHONE_OS_VERSION_MIN_REQUIRED只是一个变量构建设置设置?

我已经阅读了如何定位特定iPhone版本的答案以及下面列出的其他相关问题.

但是,我刚刚注意到__IPHONE_OS_VERSION_MIN_REQUIRED = 30200当我使用Xcode 4在iPhone(4.3.1)上构建和运行时.为什么?

当您将代码提交给Apple时,他们是否为每个存在的iPhone版本编译了一个版本,并相应地进行设置__IPHONE_OS_VERSION_MIN_REQUIRED

这样,您可以检查__IPHONE_OS_VERSION_MIN_REQUIRED并了解运行代码的iOS版本.

相关问题:

iphone runtime version compile-time ios

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

使用NSXMLParserDelegate构建项目时出错

TurbineXMLParser.h

#import <Foundation/Foundation.h>

@interface TurbineXMLParser : NSObject <NSXMLParserDelegate> {
...
Run Code Online (Sandbox Code Playgroud)

TurbineXMLParser.m

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

我刚刚在当前项目中添加了一个新类,我之前在单个文件中进行了测试.当我尝试构建项目时,我收到错误:错误:找不到'NSXMLParserDelegate'的协议声明

我做了一些搜索并尝试添加以下内容......

TurbineXMLParser.h

#import <Foundation/Foundation.h>

@protocol NSXMLParserDelegate;

@interface TurbineXMLParser : NSObject <NSXMLParserDelegate> {
...
Run Code Online (Sandbox Code Playgroud)

但仍然收到警告:警告:未找到协议'NSXMLParserDelegate'的定义

任何帮助将非常感激

.
.
.
Run Code Online (Sandbox Code Playgroud)

EDIT_002:

<NSXMLParserDelegate>从@interface 删除确实有效,但我很好奇为什么,我混淆和混乱?我的印象是委托对象必须采用NSXMLParserDelegate协议,即<NSXMLParserDelegate>在超类之后添加.

我有两个实例,其工作方式不同,第一个是单个命令行文件中的项目,如果我不添加,<NSXMLParserDelegate>则警告:

class 'TestXMLParser' does not implement the 'NSXMLParserDelegate' protocol
Run Code Online (Sandbox Code Playgroud)

第二个实例是我在设置多个*.h和*.m文件(其中一个类是MyXMLParser.h,MyXMLParser.m)时,我尝试构建项目时<NSXMLParserDelegate>遇到此错误:

error: cannot find protocol declaration for 'NSXMLParserDelegate'
Run Code Online (Sandbox Code Playgroud)

删除<NSXMLParserDelegate>,一切正常,没有错误,没有警告......

加里

iphone cocoa-touch objective-c

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

标签 统计

iphone ×2

cocoa-touch ×1

compile-time ×1

ios ×1

objective-c ×1

runtime ×1

version ×1