Ios 解析前缀属性必须后跟接口或协议
首先,我在这个网站上尝试了类似问题中提供的所有其他解决方案。但是没有运气 下面是给出错误信息的文件Ios 解析前缀属性必须后跟接口或协议,ios,iphone,cocoa-touch,Ios,Iphone,Cocoa Touch,首先,我在这个网站上尝试了类似问题中提供的所有其他解决方案。但是没有运气 下面是给出错误信息的文件FMResultSet.h #import <Foundation/Foundation.h> #import "sqlite3.h" #ifndef __has_feature // Optional. #define __has_feature(x) 0 // Compatibility with non-clang compilers. #endif #ifndef
FMResultSet.h
#import <Foundation/Foundation.h>
#import "sqlite3.h"
#ifndef __has_feature // Optional.
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
#endif
#ifndef NS_RETURNS_NOT_RETAINED
#if __has_feature(attribute_ns_returns_not_retained)
#define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))
#else
#define NS_RETURNS_NOT_RETAINED
#endif
#endif
@class FMDatabase; // <-- here it gives error (Prefix attribute must be followed by an interface or protocol)
@class FMStatement;
@interface FMResultSet : NSObject {
FMDatabase *_parentDB;
FMStatement *_statement;
NSString *_query;
NSMutableDictionary *_columnNameToIndexMap;
BOOL _columnNamesSetup;
}
@property (atomic, retain) NSString *query;
@property (atomic, retain) NSMutableDictionary *columnNameToIndexMap;
@property (atomic, retain) FMStatement *statement;
+ (id)resultSetWithStatement:(FMStatement *)statement usingParentDatabase:(FMDatabase*)aDB;
- (void)close;
- (void)setParentDB:(FMDatabase *)newDb;
- (BOOL)next;
- (BOOL)hasAnotherRow;
- (int)columnCount;
- (int)columnIndexForName:(NSString*)columnName;
- (NSString*)columnNameForIndex:(int)columnIdx;
- (int)intForColumn:(NSString*)columnName;
- (int)intForColumnIndex:(int)columnIdx;
- (long)longForColumn:(NSString*)columnName;
- (long)longForColumnIndex:(int)columnIdx;
- (long long int)longLongIntForColumn:(NSString*)columnName;
- (long long int)longLongIntForColumnIndex:(int)columnIdx;
- (unsigned long long int)unsignedLongLongIntForColumn:(NSString*)columnName;
- (unsigned long long int)unsignedLongLongIntForColumnIndex:(int)columnIdx;
- (BOOL)boolForColumn:(NSString*)columnName;
- (BOOL)boolForColumnIndex:(int)columnIdx;
- (double)doubleForColumn:(NSString*)columnName;
- (double)doubleForColumnIndex:(int)columnIdx;
- (NSString*)stringForColumn:(NSString*)columnName;
- (NSString*)stringForColumnIndex:(int)columnIdx;
- (NSDate*)dateForColumn:(NSString*)columnName;
- (NSDate*)dateForColumnIndex:(int)columnIdx;
- (NSData*)dataForColumn:(NSString*)columnName;
- (NSData*)dataForColumnIndex:(int)columnIdx;
- (const unsigned char *)UTF8StringForColumnIndex:(int)columnIdx;
- (const unsigned char *)UTF8StringForColumnName:(NSString*)columnName;
// returns one of NSNumber, NSString, NSData, or NSNull
- (id)objectForColumnName:(NSString*)columnName;
- (id)objectForColumnIndex:(int)columnIdx;
- (id)objectForKeyedSubscript:(NSString *)columnName;
- (id)objectAtIndexedSubscript:(int)columnIdx;
/*
If you are going to use this data after you iterate over the next row, or after you close the
result set, make sure to make a copy of the data first (or just use dataForColumn:/dataForColumnIndex:)
If you don't, you're going to be in a world of hurt when you try and use the data.
*/
- (NSData*)dataNoCopyForColumn:(NSString*)columnName NS_RETURNS_NOT_RETAINED;
- (NSData*)dataNoCopyForColumnIndex:(int)columnIdx NS_RETURNS_NOT_RETAINED;
- (BOOL)columnIndexIsNull:(int)columnIdx;
- (BOOL)columnIsNull:(NSString*)columnName;
/* Returns a dictionary of the row results mapped to case sensitive keys of the column names. */
- (NSDictionary*)resultDictionary;
/* Please use resultDictionary instead. Also, beware that resultDictionary is case sensitive! */
- (NSDictionary*)resultDict __attribute__ ((deprecated));
- (void)kvcMagic:(id)object;
@end
#导入
#导入“sqlite3.h”
#ifndef\uuuu具有\u功能//可选。
#define _具有_功能(x)0//与非铿锵编译器的兼容性。
#恩迪夫
#如果NDEF NS_返回(未保留)
#如果u_具有u功能(属性n u返回u未u保留)
#定义NS_返回\未保留\属性\((NS_返回\未保留))
#否则
#定义NS\u返回值\u未保留
#恩迪夫
#恩迪夫
@类FMDatabase;// 是否导入“FMDatabase.h”而不是@class?请检查“FMDatabase.h”中是否使用任何协议
如果您在文件中实现了任何协议,那么该协议会给您带来问题。尝试在“FMResultSet.h”中正确使用该选项
我希望协议的执行可能是你的问题
其他可能性
请检查此链接
此链接也可能对您有所帮助。您如何使用该文件?它包含在什么中?@class FMDatabase代码>你在这行得到了什么?多解释一下。。