MainViewController我以编程方式从 xib 中打开一个视图。此 xib 视图包含一个UIButton. xib 成功打开。UIButton我想移动FeedBackViewController这是我用来FeedBackViewController点击的代码UIButton
FeedBackViewController *view=[self.storyboad instantiateViewControllerWithIdentifier:@"FeedBackView"];
[self presentViewController:view animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)但它正在崩溃,我收到以下消息:
由于未捕获的异常“NSInvalidARgumentException”而终止应用程序,原因:“应用程序试图在目标 FutureOrderViewController 上呈现一个 nil 模态视图控制器:0x199a4a30。
我正在构建一个使用核心数据数据库来存储产品数据的应用程序。这些产品显示在UICollectionView. 此集合视图中的每个单元格都显示其包含的产品的基本信息,包括图像。
尽管单元相对较小,但它们显示的原始图像优选地相当大,因为它们还应该能够在更大的图像视图中显示。在我的方法中,图像是直接从核心数据加载的CellForItemAtIndexPath::
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! CollectionWineCell
var current: Product!
//product details are set on labels
//image is set
if current.value(forKey: "image") != nil {
let image = current.value(forKey: "image") as! WineImage
let loadedImage = UIImage(data: image.image)
cell.imageview.image = loadedImage
} else {
cell.imageview.image = UIImage(named: "ProductPlaceholder.png")
}
return cell
}
Run Code Online (Sandbox Code Playgroud)
当产品集合增加时,滚动会变得更加颠簸,并且许多帧会丢失。这对我来说很有意义,但到目前为止我还没有找到合适的解决方案。在线查看时,有很多文档和框架可用于从 URL(在线或文件路径)异步加载图像,但从 Core Data 执行此操作似乎并不常见。
我已经尝试过使用异步获取请求来做到这一点:
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName:"ProductImage") …Run Code Online (Sandbox Code Playgroud) 如果您的iOS设备设置为使用默认为12小时制的区域(例如美国),并且您具有如下DateFormatter设置:
var dateFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "h:mm a"
return formatter
}()
Run Code Online (Sandbox Code Playgroud)
然后,它会输出,如果“24小时时间”开关接通的24小时格式的时间ON的日期和时间设置在iOS中。
如果您的自定义日期格式为“ H:mm”(即24小时),而您仍处于默认的12h区域,则无论24小时开关的打开/关闭状态如何,它都将输出24小时时间。
好的,很好,很简单,我将使用“ h:mm a”,然后用户将根据自己喜欢的格式看到显示的任何时间。但是,如果您将区域更改为默认情况下使用24小时制的区域,则行为会相反!如果您具有“ H:mm”并且24小时制时间开关处于OFF位置,它将更改为12小时制(“ h:mm a”)。
是的,通常可以通过使用时间样式(formatter.timeStyle = .short例如,)而不是使用自定义日期格式来避免这种情况,但是如果您需要自定义日期格式并且要遵守用户的设置,应该怎么办?(例如,如果您需要在字符串中插入一些自定义字符,或者只是想按非标准顺序使用组件)
我想在这里也要吃蛋糕的唯一方法是提前检查用户的喜好(据我所知,您实际上不能直接做)或语言环境的默认设置是(我虽然看不到任何方法来做),然后相应地调整格式…
我做了这个Xcode项目,以更清楚地演示该问题(显然,它必须在设备上运行,因为模拟器上没有24小时切换)。
我知道有各种各样的解决方法,但是如果您要制作的应用程序使用自定义日期/时间格式作为UI并具有来自世界不同地区的用户,那么我不希望Apple期望您做什么。我是否缺少某些东西,或者这是iOS中的缺陷?
注意:此问题专门用于将日期转换为字符串以供显示,因此,我希望尽可能遵守用户的语言环境和其他设置。我知道您可以将语言环境设置为en_POSIX等,但这不能解决问题。我也希望尽可能地做到无缝,并充分利用内置的功能,但这似乎不可能实现,除非您仅将目标用户设置为具有相同默认24小时制的地区…
我希望能够共享选定的文本,但我的扩展程序仅在单击共享图标时出现(然后它会用页面标题填充该字段)。我希望我的扩展程序在用户选择文本并单击“共享...”(如下图所示)时出现,然后我希望它用选定的文本填充文本区域。
共享视图控制器:
override func viewDidLoad() {
super.viewDidLoad()
customPopup()
let extensionItem = extensionContext?.inputItems.first as! NSExtensionItem
let itemProvider = extensionItem.attachments?.first as! NSItemProvider
let propertyList = String(kUTTypePropertyList)
if itemProvider.hasItemConformingToTypeIdentifier(propertyList) {
itemProvider.loadItem(forTypeIdentifier: propertyList, options: nil, completionHandler: { (item, error) -> Void in
guard let dictionary = item as? NSDictionary else { return }
OperationQueue.main.addOperation {
if let results = dictionary[NSExtensionJavaScriptPreprocessingResultsKey] as? NSDictionary {
print("RESULTS: \n", results)
}
}
})
} else {
print("error")
}
}
Run Code Online (Sandbox Code Playgroud)
Action.js(JS 预处理)
var MyPreprocessor = function() {};
MyPreprocessor.prototype = …Run Code Online (Sandbox Code Playgroud) 我刚刚升级到 Xcode 13.1,Target 和 Storyboard 都仅显示 XML。
这是我的项目目标文件视图。
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 52;
objects = {
/* Begin PBXBuildFile section */
FE02B2A625CB5E7D00C2B123 /* SectorTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE02B2A525CB5E7D00C2B123 /* SectorTime.swift */; };
FE0340BC2169997900803E4C /* TransactionNumberGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE0340BB2169997900803E4C /* TransactionNumberGenerator.swift */; };
FE036EF7245D116000C9D3A1 /* ArchiveImport.swift in Sources */ = {isa = PBXBuildFile;
Run Code Online (Sandbox Code Playgroud)
当我右键单击项目导航器中的故事板文件时,菜单中缺少“打开为”选项:
有人有主意吗?我已经完成了干净的构建,并重新启动了 Xcode 和我的 Mac。
我的 Flutter 应用程序的 Xcode Cloud 构建突然开始失败,而我没有对其进行任何预期的更改。
以下是我的ci_post_clone.sh脚本。
echo "Starting CI script..."
echo $CI_WORKSPACE
# The default execution directory of this script is the ci_scripts directory.
cd $CI_WORKSPACE # change working directory to the root of your cloned repo.
ls
# Install Flutter using git.
git clone https://github.com/flutter/flutter.git --depth 1 -b stable $HOME/flutter
export PATH="$PATH:$HOME/flutter/bin"
# Install Flutter artifacts for iOS (--ios), or macOS (--macos) platforms.
flutter precache --ios
# Install Flutter dependencies.
flutter pub get
# Install CocoaPods …Run Code Online (Sandbox Code Playgroud) 由于我使用CSS构建布局,我总是拒绝为不同的浏览器使用CSS hacks.
在您看来,使用黑客是否真的有好处?
干杯
当我尝试获取主屏幕的边界时[[UIScreen mainScreen] bounds],它返回null.我也尝试过[[UIScreen applicationFrame] bounds],仍然返回null.
奇怪的是; 如果我这样做NSLog(@"%@", [UIScreen mainScreen]);打印出正确的界限,虽然我不知道如何解析它,如果它甚至可能.
这是相关的代码:
-(void)loadView {
[super loadView];
CGRect pagingFrame = [[UIScreen mainScreen] bounds];
NSLog(@"%@", [[UIScreen mainScreen] bounds]); //prints null for me
NSLog(@"Width of original frame = %d", pagingFrame.size.width); //prints out 0
pagingFrame.origin.x -= pagingXOrigin;
pagingFrame.size.width += pagingWidthAdd;
NSLog(@"Width of adjusted frame = %d", pagingFrame.size.width); //still prints out 0
pagingScrollView = [[UIScrollView alloc] initWithFrame:pagingFrame];
pagingScrollView.pagingEnabled = YES;
pagingScrollView.backgroundColor = [UIColor blackColor];
pagingScrollView.contentSize = CGSizeMake(pagingFrame.size.width * [self imageCount], pagingFrame.size.height); …Run Code Online (Sandbox Code Playgroud) 我使用Apple的Accelerate Framework(在iOS设备上执行)成功实现了采用数组数据并对其运行快速傅里叶变换的代码.
我现在的问题是频率轴的比例是多少?结果在某些频率范围内具有预期的峰值,但我不确定频率应该是多少.Accelerate Framework的FFT函数接收一个数组并吐出一个具有相同(或更多)数据点的数组.是否假设所有这些点在时间上是等间隔的?它不采用采样频率或时间变量作为输入.频率轴的比例(即每个点上的频率增量)只是采样周期除以2*Pi(或类似的东西?)我在文档中找不到很多信息.我一直在网上寻找类似的问题,但没有找到任何东西.
这在某种程度上是一个数学问题,尽管它在很大程度上取决于Accelerate Framework的实现.
谢谢
我正在使用XCode 4.5.2并且有一个项目无法为运行iOS 6.0.1的iPhone编译,尽管其他项目使用相同的设置进行编译,如下图所示.
关于如何解决这个问题的任何想法?

ios ×6
xcode ×4
iphone ×2
objective-c ×2
swift ×2
asynchronous ×1
bounds ×1
core-data ×1
css ×1
fft ×1
locale ×1
storyboard ×1
xcode-cloud ×1
xib ×1