您的位置:首页 > 其它

编译XCODE的时候,如果修改从10.8到10.7版本

2014-07-18 09:34 337 查看
将高版本修改成低版本,主要目的是支持低版本,同时支持高版本,这样程序可以在更多的电脑上运行。

当然只是OS X10.7(含)以上的操作系统上。

目前2014-7-18 最高版本是

现行的最新的系统版本是OS X 10.10 Yosemite,且网上也有在PC上运行的Mac系统,简称 Mac PC。

首先要做的事情是:

Architectures->Basic SDK: OS X10.7
OS X Deployment Target :OS X10.7
如果你找不到以上选项,就找 OS X10.8 (或者其他的)字符,在Build Settings里面。

编译,OK!成功!

不会出现任何错误!

如果你忘记上面2项设置一致,会出现以下错误!

(1)

出现错误:

 lazy symbol binding failed: Symbol not found: _objc_setProperty_atomic

 可更改deployment target使起小于os sdk 。

若工程中添加了其他工程  则也应该更改起deployment target

Architectures->Basic SDK: OS X10.7
OS X Deployment Target :OS X10.7
修改一致就可以了。

(2)

这里不要修改,只要保持一致,就编译没有错误。

只是这里可以作为以后其他代码同类错误出现,一个修改方法的参考:

GetMetadataForFile.m

MySpotlightImporter.m

这些系统自动在新建的时候,当选择了后,自动生成的代码,在10.8 -》10.7的时候也会编译错误,

以下是一些修改。

NSObject *contentToIndex = [metadatavalueForKey:@"YOUR_INFO"];
[spotlightDatasetValue: yourDisplayStringforKey:(NSString *)kMDItemDisplayName];

        //spotlightData[(NSString *)kMDItemDisplayName] = yourDisplayString;

//NSDate *modelModificationDate =  modelFileAttributes[NSFileModificationDate];
NSDate *modelModificationDate =  [modelFileAttributesvalueForKey:NSFileModificationDate];

 //((__bridge NSMutableDictionary *)attributes)[(NSString *)kMDItemTextContent] = contentToIndex;
                    [((__bridgeNSMutableDictionary *)attributes)setValue:contentToIndex
forKey: (NSString *)kMDItemTextContent];

补充:

在编译的时候寻找帮助:

按住command或者win键盘,双击函数,就会出现解释。

然后在里面,可以很快找到使用函数的方法。

完。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐