国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Code Blocks做Objective-C遇到奇葩編譯錯誤

2019-11-08 01:36:09
字體:
來源:轉載
供稿:網友

摘要:

按照我前面一片博客所說的那樣配置好GNUstep+clang編譯器之后,Objective-C還是出現編譯不通過,報下面這個錯誤: error: synthesized

原版測試代碼:

Greeting.h:

#import <Foundation/Foundation.h>@interface Greeting : NSObject@property (nonatomic) NSString *name;- (void) print;@end

Greeting.m:

#import "Greeting.h"@implementation Greeting@synthesize name=_name;-(void) print{ NSLog(@"%@",self.name); }@end

main.m:

#import "Greeting.h"int main (int argc, const char *argv[]){ @autoreleasepool { Greeting *greeting=[[Greeting alloc]init]; greeting.name= @"ab" ; [greeting print]; } return 0;}

但是編譯報錯: 這里寫圖片描述 再三核實代碼,沒有發現任何有語法錯誤的地方(參考《Objective-c程序設計第六版》一書)。 最終,發現問題是當前的clang編譯器版本是32位的,巨坑,這個32位的clang編譯器很多功能無法使用。 這里沒有的就是,@proerty和@synthesize對屬性的自動生成功能,沒有自動生成實例變量來存放屬性值, 只能做到自動為屬性創建getter和setter。

可以按照下面的代碼修改來解決:

Greeting.h:

#import <Foundation/Foundation.h>@interface Greeting : NSObject{ NSString *_name;}@property (nonatomic) NSString *name;- (void) print;@end

Greeting.m:

#import "Greeting.h"@implementation Greeting{ NSString *_name;}@synthesize name=_name;-(void) print{ NSLog(@"%@",self.name); }@end

不出所料,應該能編譯成功且成功執行了吧。

但是這是治標不治本的辦法,不知道有沒有小伙伴有更好的解決辦法,歡迎評論交流。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彩票| 延安市| 平顶山市| 新密市| 保定市| 延川县| 门源| 陇南市| 虹口区| 东台市| 米林县| 平果县| 巴彦淖尔市| 九江县| 琼结县| 安化县| 建始县| 六盘水市| 和田市| 贺州市| 丰台区| 体育| 梓潼县| 乐都县| 遂川县| 湄潭县| 新龙县| 北安市| 利津县| 旬阳县| 扬州市| 靖远县| 大埔县| 仲巴县| 商丘市| 墨脱县| 昭通市| 长兴县| 武穴市| 枞阳县| 六盘水市|