我有一个Objective-C对象,我们可以调用ObjCObj我实现了一个简单的描述方法,如果我在局部变量中实例化该类,通常可以正常工作.
问题:我遍历一个ObjCObj对象数组并将它们放入Swift数组中
let cacheArray = [ObjCObj]()
Run Code Online (Sandbox Code Playgroud)
我的数组填满后,我尝试设置一个断点,尝试打印一个项的值,我得到以下错误:
expression produced error:
/var/folders/w9/3rvg1bk95379dgvcr11n16_h0000gp/T/lldb/3499/expr878.swift:1:46: error: use of undeclared type '__ObjC'
$__lldb__DumpForDebugger(Swift.UnsafePointer<__ObjC.ObjCObj>(bitPattern: 0x67fd9b0).memory)
Run Code Online (Sandbox Code Playgroud)
如果我尝试打印像这样的表达式:
cacheArray[2]
Run Code Online (Sandbox Code Playgroud)
有用.但是,如果我在调试器检查器中打开数组并选择一行数组并要求打印描述,则会失败.
Cocoapods inhibit_all_warnings!没有将Pods项目"禁止所有警告"设置为"是"
在设置Pod项目和单个窗格"禁止所有警告"选项为"是"后,Xcode仍显示窗格警告
Cocoapods版本:0.39.0 Xcode版本:7.2
我的吊舱在这里:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
# ignore all warnings from all pods
inhibit_all_warnings!
pod 'SnapKit', '~> 0.15.0'
pod 'Crashlytics'
pod 'YLGIFImage'
pod 'Fabric'
pod "AFNetworking", "~> 2.0"
pod 'SDWebImage', '~>3.7'
# Changes build active architecture only
post_install do |installer_representation|
installer_representation.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
end
end
end
Run Code Online (Sandbox Code Playgroud) 我将代码迁移到Swift 3后遇到了一个问题.我猜iOS10现在提出了新问题,它实际上与Swift本身无关.
错误:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'View has lost track of its superview, most likely through unsupported use of CALayer API on the view's layer. If this isn't a crash yet, it will be in the near future.
Problem view: <UIToolbar: 0x102552d80; frame = (0 0; 375 683); alpha = 0.97; opaque = NO; layer = <CALayer: 0x1700383e0>>
Expected parent: <MyModelView: 0x10250ecd0; frame = (0 -16; 375 683); hidden = YES; layer = <CALayer: …Run Code Online (Sandbox Code Playgroud) 这只是一个警告,应用程序工作正常,但可能有这个警告的原因.
我在网上发现了类似的问题,但还没有答案.首先,错误:
[查看]第一响应者警告:'; layer =; contentOffset:{0,0}; contentSize:{302,20}; adjustContentInset:{0,0,0,0}>'从层次结构中删除时拒绝resignFirstResponder
设置是一个chatviewcontroller,因此它是一个嵌入UIViewController内的UITableView,它包含带文本的单元格.
当我们向下滑动聊天项列表时,我们正在使用UIScrollView类的Dismiss Interactively键盘功能来关闭键盘.
我们在键盘上添加一个inputAccessory,用作文本输入区+发送按钮.
在包含UITableView的UIViewController中,我们添加以下UIResponder覆盖以获取accessoryView.
override var inputAccessoryView: UIView {
return messageInputView
}
Run Code Online (Sandbox Code Playgroud)
问题是我们以交互方式解除键盘(使其从屏幕上消失),我们收到此警告.任何输入,任何有关该主题的帮助都会很棒!
我正在尝试使用autolayout创建节标题.带标题和计数器的简单标题
class ProfilePeopleListHeaderViewCell: UIView {
let titleLeftOffset = 12
let counterRightOffset = 5
let counterWidth = 50
var title = "title" {
didSet {
titleLabel.text = title
}
}
var numberOfPeople = 0 {
didSet {
peopleCounter.text = "\(numberOfPeople)"
}
}
let titleLabel = UILabel()
let peopleCounter = UILabel()
convenience init(title: String, numberOfPeople:Int) {
self.init()
self.title = title
self.numberOfPeople = numberOfPeople
backgroundColor = UIColor.greenColor()
titleLabel.textColor = Constants.Colors.ThemeGreen
titleLabel.textAlignment = .Left
if #available(iOS 8.2, *) {
titleLabel.font = Constants.Fonts.Profile.PeopleListHeaderFont
peopleCounter.font = …Run Code Online (Sandbox Code Playgroud) 我把searchBar放在tableHeaderView中.在iphone 6上一切正常,但在iphone 5s上,我得到了这个奇怪的结果?
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
tableView.sectionIndexColor = Constants.Colors.ThemeGreen
tableView.sectionIndexBackgroundColor = UIColor.clearColor()
tableView.sectionIndexTrackingBackgroundColor = UIColor.clearColor()
tableView.contentInset = UIEdgeInsetsMake(0, 0, CGFloat(Constants.Dimensions.TabBarHeight), 0)
resultSearchController = UISearchController(searchResultsController: nil)
resultSearchController.searchResultsUpdater = self
resultSearchController.dimsBackgroundDuringPresentation = false
resultSearchController.definesPresentationContext = true
tableView.tableHeaderView = resultSearchController.searchBar
resultSearchController.searchBar.sizeToFit()
//Fetch data for the first time
do{
try fetchedResultsController.performFetch()
listHeaderView?.count = "\(fetchedResultsController.fetchedObjects!.count)"
}catch{
print("Error - Couldn't fetch list")
}
Run Code Online (Sandbox Code Playgroud)
我有一个 Swift 项目,我向它添加了一个单元测试目标。我的配置文件 Constants.swift 包含一个结构:
struct Constants {
struct Network {
#if APITESTS
static let serverURL = "https://www.servertest.com"
#else
static let serverURL = "https://www.server.com"
#endif
}
}
Run Code Online (Sandbox Code Playgroud)
在我的测试目标中,Other Swift Flags我添加了 -DAPITESTS 然后使用 CMD+U 运行单元测试在我的测试中存在的日志中,我可以看到它是“ https://www.server.com ”,它应该是 servertest .
如果我使用 #if DEBUG 而不是 APITESTS,它会起作用。如果我尝试在 Active Compilation Conditions(就像 DEBUG)中添加 APITESTS,它仍然无法识别。
有明确的解释吗?
我们更新了应用商店描述、屏幕截图,还添加了视频预览。视频预览已按照 Apple 的建议使用带有“导出为应用程序预览”选项的 iMovie 生成。
我们有 5.5 英寸和 6.5 英寸的视频,在 iMovie 导出后在本地播放时,它们都非常干净且高质量。
今天早上苹果审核结束后,我们去App Store查看了一下,发现视频质量确实很低。
造成这种低质量的原因是什么?在商店提供高清版本的视频之前,苹果方面是否需要进行一些服务器处理?
仅供参考 > 应用程序名称是:Ikou - 与你的朋友见面
感谢您的反馈!
当我弹出当前的ViewController时,我想从用户界面中删除searchBar。现在,我这样做:
override func viewWillDisappear(animated: Bool) {
resultSearchController.active = false //Need improvement here. remove animation
super.viewWillDisappear(animated)
}
Run Code Online (Sandbox Code Playgroud)
这里发生的是UISearchController被关闭了,但是带有动画...而且在当前状态下看起来非常糟糕。我希望它回到没有动画的初始状态,然后viewController消失并带有自己的动画。
我对单元格使用自动高度。每次我想用新数据(这里是模型变量)更新我的单元格时,我都会更新我的自动布局约束,但出现错误。在这里只是为了说明这个问题,我什至没有改变约束。我只是要求重新计算布局。
在单元格的第一次初始化时:没有警告,没问题。
错误:
<NSLayoutConstraint:0x174285d70 'UIView-Encapsulated-Layout-Height'
UITableViewCellContentView:0x1030f8a50.height == 500 (active)>
Run Code Online (Sandbox Code Playgroud)
编码:
tableView.rowHeight = UITableViewAutomaticDimension
override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return 500
}
class TestTableViewCell: UITableViewCell {
var model: X? {
didSet {
setNeedsLayout()
layoutIfNeeded()
}
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier) …Run Code Online (Sandbox Code Playgroud) 根据以下说明:https: //gist.github.com/dergachev/3866825#vagrant-setup
Ubuntu Linaro uname -a Linux ken-desktop 3.11.0-18-generic#32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux cat/proc/version Linux version 3.11.0-18- generic(buildd @ toyol)(gcc版本4.8.1(Ubuntu/Linaro 4.8.1-10ubuntu8))#32-Ubuntu SMP Tue 2月18日21:11:14 UTC 2014
VirtualBox虚拟-4.2
VBoxManage --version
4.2.16_Ubuntur86992
Run Code Online (Sandbox Code Playgroud)
Vagrant 1.5 vagrant_1.5.0_x86_64.deb
在cookbooks文件夹中,我克隆了以下厨师烹饪书:
git clone git://github.com/opscode-cookbooks/vim.git
git clone git://github.com/opscode-cookbooks/git.git
git clone git://github.com/opscode-cookbooks/apt.git
git clone git://github.com/tiokksar/chef-oh-my-zsh-solo.git
git clone git://github.com/opscode-cookbooks/openssl.git
git clone git://github.com/getaroom/chef-couchbase.git
Run Code Online (Sandbox Code Playgroud)
我也安装了这个:
https://github.com/dotless-de/vagrant-vbguest
vagrant plugin install vagrant-vbguest
Run Code Online (Sandbox Code Playgroud)
我尝试制作一个漂亮的Vagrantfile,用usb自动挂载创建一个精确的64虚拟机.但每次我尝试在我的虚拟机VM上添加一个usbfilter时,我最终都会收到该消息:
% vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: …Run Code Online (Sandbox Code Playgroud) 我有一个混合的 Objective-c 和 Swift 项目,我尝试为它编写单元测试。我的项目名称是:Alphaproject 我的产品模块名称是:Alphaproject 我在我的主要目标(Alphaproject)中设置为 YES 定义模块,并设置为 YES EnableTestability for Debug only in this same Target。
在我的 Test 类中,我尝试导入我的产品模块名称:
@testable 导入 Alphaproject
补充说明:
还有其他想法吗?
ios ×9
swift ×6
xcode ×6
autolayout ×3
uitableview ×3
compilation ×2
objective-c ×2
animation ×1
app-store ×1
cocoapods ×1
debugging ×1
ios10 ×1
iphone ×1
snapkit ×1
uisearchbar ×1
uitextview ×1
unit-testing ×1
vagrant ×1
virtualbox ×1