Xcode这是肿么了?

2013-06-08 20:33:56 +08:00
 fatelovely
最近想学Mac开发。先做了一下ADC上的“your first app".第一个就无法编译。总是提示:”Cocoa/Cocoa.h file not found".尼玛,我谷歌了很久。都无解。后来我自己看了一下工程概览。我想贴图的。。怎么贴不了图啊。。。。。


然后我查看了cocoa.framework的目录。发现是:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks。。尼玛这个文件夹里的headers是空的。怪不得。
我在翻看了这里面的大部分框架,发现headers文件夹都是空的。。

然后,我切换SDK为Current OSX。然后华丽丽的就行了。我再查看了一下框架的位置,发现还是在以前的位置。。。这下我完全不懂了。。照道理来说应该还是找不到cocoa/cocoa.h 的。为什么这次又可以找到了。。。。
还有一个问题请教各位,project 的base SDK 和 target 的base SDK 有什么区别?为什么这两个都可以设置base SDK??而且我发现project的base SDK设置不影响。就是target 的base SDK设置起作用。
4431 次点击
所在节点    iDev
17 条回复
alexrezit
2013-06-08 21:04:22 +08:00
呃... 说句没什么关联的... 还是建议从 iOS 开始学起...
wtl
2013-06-08 21:05:57 +08:00
project的设置只对以后生成的target有影响 对已有的target不起作用
fangzhzh
2013-06-08 21:27:31 +08:00
@alexrezit 可以有
alexrezit
2013-06-08 21:29:11 +08:00
@fangzhzh
嗯?
so898
2013-06-08 22:01:33 +08:00
@alexrezit 做Mac开发从iOS开始学起?求解?难道是因为iOS的东西都是Mac简化版的原因?
fatelovely
2013-06-08 22:31:06 +08:00
各位大哥能回答一下我的问题么。。至于先学IOS还是先学MAC,这个没什么影响。我比较喜欢先做MAC的应用。IOS等过一段时间打算在学。这个不是重点啊。各位大哥。
alexrezit
2013-06-08 22:35:50 +08:00
@so898
Mac OS 坑很多, 你想挑战一下么?
jjgod
2013-06-08 22:44:30 +08:00
Framework 下的 Headers 目录一般就是一个符号链接,到 Versions/Current/Headers 目录的,你确定你查看正确了?一个 project 可以有多个 target,不同的 target 可以用不同的 SDK,所以 target 的 SDK 默认继承 project 的,但可以修改并优先使用。
ge2009
2013-06-08 22:52:07 +08:00
同意 @alexrezit 的看法。
fatelovely
2013-06-09 00:02:25 +08:00
@jjgod 查看清楚了。。我还搜索了。。都找不到cocoa.h file。上文中写错了。当我切换成current osx SDK以后,再次查看cocoa.framework 的位置,发现变成了System/Library/Frameworks/Cocoa.framework。(必须要编译一次才能看出来)这个里面的headers是有头文件存在的。。。
fatelovely
2013-06-09 00:03:07 +08:00
@alexrezit 再多有windows多?用了这么长时间的mac。感觉mac真心好用。windows才是让人烦恼不断。mac只是用的人有点少。资料相对少点。
clowwindy
2013-06-09 00:04:26 +08:00
iOS 的 API 更优雅。
so898
2013-06-09 01:31:01 +08:00
@alexrezit
这几天在考虑Fork FakeThunder这货,删掉所有python内容之后全部用Objective-C重写(蛋疼)
不过又有点想更新OnlyLZ……虽然自从不写Android之后就不怎么写Java了,不过没做好总觉得过意不去……
要说的话,手上在写的有个非常简单的项目,就是模仿一个JSON解析软件做一个本地解析的玩意……自用……
反正各种蛋疼
railgun
2013-06-09 09:48:16 +08:00
target的优先级比project的高,如果target中指定了某个值,编译器就会忽略project中同样的设定。如果target中没有指定,编译器就会去project的设置中找。
volCANo
2013-06-09 10:32:23 +08:00
lz打开的是老工程还是新建的,老工程需要根据本机的情况再设置一下。
fatelovely
2013-06-09 16:50:18 +08:00
@volCANo 崭新崭新的工程啊。
fatelovely
2013-06-10 16:58:31 +08:00
好吧。我终于知道这是什么问题了。我仔细想想,SDK里面的headers文件空为空,这绝对是不合情理的。所以我卸载了重新安装了一下,结果证实了我的猜想。果然。是安装过程中出了点问题。导致了这样一个情况。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/71743

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX