小编ton*_*k12的帖子

Xcode 8与较旧的Base SDK

我遇到了一些我在项目中使用的外部框架的兼容性问题.有没有办法在Xcode 8上更改Base SDK?目前在项目设置中只显示最新的SDK.

我已经尝试将旧版SDK从另一个版本的Xcode复制到此处,但它不起作用:

/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

ios xcode8

26
推荐指数
2
解决办法
2万
查看次数

Xcode 8:'objc_unretainedPointer'不可用使用__bridge强制转换

刚刚将我的项目更新为Xcode 8,我在我的应用程序包含的多个外部框架中发现了这个错误.是否有解决方法,可能涉及设置,以避免此编译错误?

这是一个错误示例:(我无法修改,因为它是导入的框架)

const void * ivarPtr = objc_unretainedPointer(self) + ivar_getOffset(ivar);
[decoder decodeValueOfObjCType:[ivarInfo[@"encoding"] UTF8String] at:(void *)ivarPtr];
Run Code Online (Sandbox Code Playgroud)

ios xcode8

20
推荐指数
1
解决办法
4995
查看次数

不同的UINavigationControllers中出现不同的外观

在iOS 11中,我正在更改导航控制器的后退按钮,如下所示:

UINavigationBar.appearance().backIndicatorImage = whiteBackButtonImage!.withRenderingMode(.alwaysOriginal)
UINavigationBar.appearance().backIndicatorTransitionMaskImage = whiteBackButtonImage!.withRenderingMode(.alwaysOriginal)
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,问题是当我想区分两种使用不同背面图像的UINavigationControllers:

let whiteNavigationBarAppearance = UINavigationBar.appearance(whenContainedInInstancesOf: [WhiteNavigationController.self])
whiteNavigationBarAppearance.backIndicatorImage = greenBackButtonImage!.withRenderingMode(.alwaysOriginal)
whiteNavigationBarAppearance.backIndicatorTransitionMaskImage = greenBackButtonImage!.withRenderingMode(.alwaysOriginal)

let greenNavigationBarAppearance = UINavigationBar.appearance(whenContainedInInstancesOf: [GreenNavigationController.self])
greenNavigationBarAppearance.backIndicatorImage = whiteBackButtonImage!.withRenderingMode(.alwaysOriginal)
greenNavigationBarAppearance.backIndicatorTransitionMaskImage = whiteBackButtonImage!.withRenderingMode(.alwaysOriginal)
Run Code Online (Sandbox Code Playgroud)

使用第二种方法,会显示常规后退按钮,因此无论如何它都无法识别更改.有谁知道我的方法有什么问题?

uinavigationbar uinavigationcontroller ios uiappearance swift

9
推荐指数
1
解决办法
275
查看次数