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

来源:互联网 发布:javascript 位运算 编辑:程序博客网 时间:2024/04/25 05:19

将高版本修改成低版本,主要目的是支持低版本,同时支持高版本,这样程序可以在更多的电脑上运行。

当然只是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:contentToIndexforKey: (NSString *)kMDItemTextContent];


补充:

在编译的时候寻找帮助:

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

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

完。


0 0
原创粉丝点击