symbol(s) not found in XCode, Cocoa application

后端 未结 3 875
暗喜
暗喜 2020-12-09 14:05

Though I\'ve done some development in Java and and a little in C(++), I\'m totally new to Apple\'s Objective C and XCode.

Thus, I\'m totally stumped by the following

相关标签:
3条回答
  • 2020-12-09 14:30

    Have you added IOKit as a linked framework? In XCode, expand Targets, then your target (BatteryApp I would guess), then Link Binary With Libraries. If you don't see IOKit, you'll want to add it.

    Up at the top of the tree, look for the Frameworks directory. Right-click, Add, Existing Frameworks. Browse to /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/(appropriate SDK)/System/Library/Frameworks/IOKit.framework, and click OK.

    Even though you added the simulator version of the framework, it is my belief that XCode will automatically switch the library search path as you switch between the Simulator and Device targets, so I think it's OK.

    0 讨论(0)
  • 2020-12-09 14:36

    I believe you're correct in thinking that the IOKit framework isn't linked correctly. Here's how you can make sure:

    • Expand the "Targets" group in your groups and files tree and double click on the target that needs the IOKit. (Or right click and choose Get Info) The target's info panel will come up.
    • The first tab of the info panel is where we need to be. The bottom half of the tab is a list of Linked Libraries. The IOKit is probably not in that list, so click the plus button in the bottom left.
    • Scroll down a little bit until you see IOKit.framework. Select that, and click "Add". This will add the IOKit to your framework and link it into the target.

    If you've already added the IOKit framework to your project, then you just need to verify that it's part of the "Link Binary with Libraries" phase of the appropriate target. (Targets group > expand your target > Link Binary with Libraries). If it's not there but it's in your project, then you can either follow the steps above or simply drag and drop the framework from wherever it is in your groups and files tree.

    0 讨论(0)
  • 2020-12-09 14:47

    I'm no expert in Xcode/cocoa-touch myself, but according to this link it looks like the IOKit framework isn't available for the general public.

    In the official docs, I found a quote that described IOKit as such: "Contains interfaces used by the device. Do not include this framework directly." So in the end, my desire to access that IOKit information was thwarted. For whatever reason, Apple has chosen to list it as a public framework but the reality is that it is not.

    0 讨论(0)
提交回复
热议问题