簡體   English   中英

將SAFELY 64位應用程序轉換為32/64位應用程序

[英]convert SAFELY 64 bit app into a 32/64bit app

我創建了一個應用程序(我的第一個),啟用了ARC,分發(不在appstore上),並開始收到報告,它在某些mac上崩潰了。 在嘗試和用他們的幫助后,我們發現問題是他們有一個32位處理器。 所以我禁用了ARC,將構建設置為x86_64並收到大量錯誤消息。

所有這些都已經排序,現在我留下了大量的警告(黃色的)。 我擔心我會忘記一些事情並弄亂記憶。 在您看來,什么是最好的方式來獲得64位應用程序到32/64位應用程序而不忘記什么? 如果有許多mac與它不兼容,為什么ARC首先使用?

謝謝!

-----更新------

如:reuquested:

 Update to recommended settings

 Property 'delegate' requires method 'delegate' to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation

 Property 'delegate' requires method 'setDelegate:' to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation

 '__bridge' casts have no effect when not using ARC

 Variable 'loc_tip' is used uninitialized whenever 'if' condition is false

 Variable 'loc_tip' is used uninitialized whenever '&&' condition is false

 Conflicting parameter types in implementation of 'tableView:toolTipForCell:rect:tableColumn:row:mouseLocation:': 'NSInteger' (aka 'int') vs 'long'

前方粗糙的水

所有這些都已經排序,現在我留下了大量的警告(黃色的)。

打開警告級別。 解決所有問題。

我擔心我會忘記一些事情並弄亂記憶。

在您看來,什么是最好的方式來獲得64位應用程序到32/64位應用程序而不忘記什么?

考慮到問題,擔心是自然的。

一個快速解決方法是使用ObjC啟用垃圾收集。 這樣做並相信它只會工作,沒有額外的更改是一個錯誤(讀:你應該留出大量的時間進行測試和尋找bug)。

另一種方法,如果你真的想要32和64的良好支持,將是使用MRC - 但你應該只承諾在這種情況下32位和64位的MRC(沒有ARC)。 當然,這需要大量的審查,修復,手動測試和泄漏測試(除非您的程序很小)。 對於具有良好長期支持和高質量標准的應用程序,這是IMO的首選解決方案。

如果有許多mac與它不兼容,為什么ARC首先使用?

實際上並沒有很多需要32位的mac。 如果您今天發布了1.0,那么您應該只考慮將其設為64位。

如果需要的話,應該從開發開始就支持和測試32位 - ARC選項或32位很早就會被淘汰。 這種疏忽似乎很難通過測試和開發。

更新為推薦設置

點擊“驗證設置”,查看,執行更改。

屬性'委托'需要定義方法'委托' - 使用@synthesize,@ dynamic或在此類實現中提供方法實現

回音警告信息

屬性'委托'需要定義方法'setDelegate:' - 使用@synthesize,@ dynamic或在此類實現中提供方法實現

回音警告信息

不使用ARC時,'__ bridge'強制轉換無效

在這種情況下你只需要使用c風格的演員表

當'if'條件為假時,變量'loc_tip'被使用為未初始化

ARC為您做到了這一點。 做ARC會做的事情:

NSSomething * loc_tip = nil;

當'&&'條件為假時,變量'loc_tip'未初始化

回應之前的回應

'tableView:toolTipForCell:rect:tableColumn:row:mouseLocation:':'NSInteger'(又名'int')vs'long'的實現中存在沖突的參數類型

選擇器的聲明不匹配 - 從標頭( NSTableView.h )復制聲明,並查看(參數類型的)更改是否需要對您的實現進行任何其他更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM