小编use*_*037的帖子

iOS - 本地通知 - 定制振动或振动更长时间

我正在尝试构建一个像闹钟一样工作的iPhone应用程序,我正在使用UILocalNotification

问题

  • 我希望手机能够振动更长时间.然而目前它只振动一次.

替代方法

  1. 是否可以使用自定义振动模式?(http://www.pcworld.com/article/242238/how_to_use_custom_vibrations_in_ios_5.html)

  2. 当推送通知被触发时,是否可以执行方法?(但应用程序可能甚至没有运行,但它需要工作)

  3. NSTimer是一个选择吗?(但应用程序可能甚至没有运行,但它需要工作)

  4. 还有其他替代品吗?

iphone-vibrate ios uilocalnotification

5
推荐指数
1
解决办法
3981
查看次数

Xcode 7.3.1应用程序提交到Appstore

Apple仍然接受使用Xcode 7.3.1(Swift 2.2)为AppStore构建的应用程序吗?

还是必须迁移到Xcode 8(至少Swift 2.3或以上)?

xcode ios swift

5
推荐指数
1
解决办法
427
查看次数

按键排序的NSDictionary实例的快速枚举

概观

  • 我正在使用快速枚举来遍历NSDictionary实例
  • 我希望根据密钥的升序来枚举NSDictionary实例,但似乎并非如此

我想做的事:

  • 我希望能够使用快速枚举以密钥的升序迭代NSDictionary实例

注意:请参阅预期输出与实际输出

问题

  1. 我的实施错误了吗?
  2. NSDictionary的快速枚举是否保证基于密钥的排序?
  3. 如果没有,那么有没有解决这个问题,但使用快速枚举?

#import<Foundation/Foundation.h>

int main()
{
    system("clear");

    NSDictionary *d1 = nil;

    @autoreleasepool
    {   

        d1 = [[NSDictionary alloc] initWithObjectsAndKeys: @"AAA", [NSNumber numberWithInt:10], 
              @"BBB", [NSNumber numberWithInt:20],               
              @"CCC", [NSNumber numberWithInt:30],               
              nil];
    }   

    for(NSNumber* n1 in d1)     //I expected fast enumeration for NSDictionary to be based on the 
        //ascending order of the key but that doesn't seem to be the case
    {
        printf("key = %p"
               "\t [key intValue] = %i"
               "\t value = %s\n", …
Run Code Online (Sandbox Code Playgroud)

objective-c nsdictionary fast-enumeration

4
推荐指数
1
解决办法
8605
查看次数

将属性类型作为参数传递

有没有办法将属性作为参数传递给函数?

class Car {

    let doors : Int = 4
    let price : Int = 1000
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将Car属性作为类型传递给函数?

我想实现以下目标:

func f1(car: Car, property: SomeType) {

    println(car.property)

}

let c1 = Car()

f1(c1, doors)
f1(c1, price)
Run Code Online (Sandbox Code Playgroud)

关闭帮助,如果又如何?

closures swift

4
推荐指数
2
解决办法
751
查看次数

URLRequest相等不包含httpBody

总览

有2 URLRequests,一个有httpBody,没有一个httpBody
但是,进行比较时,表明两者相等。

这是预期的行为还是我缺少了什么?

let url = URL(string: "www.somevalidURL.com")!

var r1 = URLRequest(url: url)
r1.addValue("Content-Type", forHTTPHeaderField: "application/json; charset=utf-8")
r1.httpBody = makeBody(withParameters: ["email" : "a@b.com"])

var r2 = URLRequest(url: url)
r2.addValue("Content-Type", forHTTPHeaderField: "application/json; charset=utf-8")

if r1 == r2 {
    print("requests are equal")
}
else {
    print("requests are not equal")
}

if r1.httpBody == r2.httpBody {
    print("body is equal")
}
else {
    print("body is not equal")
}

func makeBody(withParameters bodyParameters: [String : Any]?) -> …
Run Code Online (Sandbox Code Playgroud)

urlrequest swift swift4.2

3
推荐指数
1
解决办法
294
查看次数

Access Core Data Model inside a framework

Overview:

我有一个包含以下结构的工作区:

工作空间:

-- SomeApp
-- SomeFramework
---- DataService.swift
---- FrameworkModel.xcdatamodeld
Run Code Online (Sandbox Code Playgroud)

SomeFramework 已添加(嵌入并签名)到 SomeProject。

目前的行为:

  • 当我尝试打印时应用程序崩溃persistentContainer.viewContext
  • 没有创建 Sqlite 文件。
  • 但是我可以访问中定义的其他类SomeFramework

问题:

  • 如何访问框架中定义的DataModel?

数据服务.swift:

import Foundation
import CoreData

public class DataService {
    
    lazy var persistentContainer: NSPersistentContainer = {
        let container = NSPersistentContainer(name: "FrameworkModel")
        container.loadPersistentStores { description, error in
            if let error = error {
                fatalError("Unable to load persistent stores: \(error)")
            }
        }
        return container
    }()
    
    public init() {
        
        print(persistentContainer.viewContext) //Crashes here because "Failed to load model named …
Run Code Online (Sandbox Code Playgroud)

core-data ios swift

3
推荐指数
1
解决办法
630
查看次数

iOS - 核心数据 - 表格视图滚动到新添加的记录

概述:

我有一个iOS项目,其中包括:

  • 核心数据(使用NSFetchedResultsController)
  • 在表视图中显示数据(UITableView)

我想做的事:

  • 当用户添加记录时,我想滚动到新添加的记录.

我做了什么

  1. 添加新记录时,在NSFetchedResultsControllerDelegate方法内部,lastAddedIndexPath当类型为insert/update/move时,我将索引路径存储在属性中
  2. 在调用save之后,我滚动到"lastAddedIndexPath"

代码(NSFetchedResultsControllerDelegate)

- (void)controller:(NSFetchedResultsController *)controller
   didChangeObject:(id)anObject
       atIndexPath:(NSIndexPath *)indexPath
     forChangeType:(NSFetchedResultsChangeType)type
      newIndexPath:(NSIndexPath *)newIndexPath
{       
    if (!self.suspendAutomaticTrackingOfChangesInManagedObjectContext)
    {
        switch(type)
        {
            case NSFetchedResultsChangeInsert:
                [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
                NSLog(@"going to store insert - scroll");
                self.lastAddedIndexPath = newIndexPath;
                break;

            case NSFetchedResultsChangeDelete:
                [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
                break;

            case NSFetchedResultsChangeUpdate:
                [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
                NSLog(@"going to store update - scroll");
                self.lastAddedIndexPath = newIndexPath;
                break;

            case NSFetchedResultsChangeMove:
                [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
                [self.tableView insertRowsAtIndexPaths:[NSArray …
Run Code Online (Sandbox Code Playgroud)

core-data uitableview nsfetchedresultscontroller ios

2
推荐指数
1
解决办法
2319
查看次数

UILocalNotification - repeatInterval reset(不重复)

概观

  • 我正在基于现有的实例创建通知 UILocalNotification
  • 现有实例已repeatInterval设置为NSWeekdayCalendarUnit

我想做的事

  • 我想不设repeatInterval重复,

  • repeatInterval为了不重复,我应该设定的常数是多少?

ios uilocalnotification

2
推荐指数
1
解决办法
2351
查看次数

操作变为isFinished = YES,而不是由它所在的队列启动

概观

  • 有一个异步操作子类
  • 将此操作添加到队列中.
  • 我在开始之前取消了这个操作.

运行时错误/警告:

SomeOperation went isFinished=YES without being started by the queue it is in

题:

  1. 这是可以忽略的东西还是严肃的东西?
  2. 怎么解决这个?
  3. 最终提供的变通方法/解决方案是否有效?

码:

public class SomeOperation : AsyncOperation {

    //MARK: Start

    public override func start() {

        isExecuting = true

        guard !isCancelled else {
            markAsCompleted() //isExecuting = false, isFinished = true
            return
        }

        doSomethingAsynchronously { [weak self] in

            self?.markAsCompleted() //isExecuting = false, isFinished = true
        }
    }

    //MARK: Cancel

    public override func cancel() {

        super.cancel()
        markAsCompleted() //isExecuting = false, isFinished = true …
Run Code Online (Sandbox Code Playgroud)

nsoperation ios swift

2
推荐指数
1
解决办法
1409
查看次数

iOS - 核心数据 - NSManagedObjectContext - 不确定它是否已保存

概观

  • 我有一个iOS项目,我在其中使用Core数据
  • 我正在插入一个对象,然后我想保存它.
  • 我不确定保存是否有效.
  • 当应用程序进入后台时,保存似乎正在工作
  • 使用模拟器时,如果单击Xco​​de上的"停止"按钮,则保存似乎不起作用.

  1. 保存真的发生了吗?
  2. 我是否面临问题,因为我创建了一个基于视图的应用程序(核心数据复选框不可用)?

接下来的步骤

  • 我正在使用模拟器进行测试.
  • 插入一个对象(代码在下一节)
  • 保存插入的对象(代码在下一节中)
  • 我按下Xcode上的停止按钮以停止运行应用程序

输出注意到了

setBeforeSave.count = 1
setAfterSave.count = 0
Run Code Online (Sandbox Code Playgroud)
  • 保存之前,该NSManagedObjectContext方法insertedObjects返回1个对象
  • 保存之前,该NSManagedObjectContext方法insertedObjects返回0个对象
  • 当按下Xcode停止按钮,并且重新启动应用程序时,之前的数据不可用(是因为我点击了xcode上的停止)
  • managedObjectContext不是零
  • NSManagedObjectContext方法save:返回YES.

插入对象的代码

Test *test = [NSEntityDescription insertNewObjectForEntityForName:@"Test" inManagedObjectContext:self.database.managedObjectContext];
Run Code Online (Sandbox Code Playgroud)

保存代码:

//database is a property of the type UIManagedDocument

NSSet *setBeforeSave = [self.database.managedObjectContext insertedObjects];
NSLog(@"setBeforeSave.count = %i", setBeforeSave.count);

NSError *error = nil;

if(![self.database.managedObjectContext save:&error])
    NSLog(@"error = %@", error);    

NSSet *setAfterSave = [self.database.managedObjectContext insertedObjects]; …
Run Code Online (Sandbox Code Playgroud)

core-data nsmanagedobjectcontext ios

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

iOS - 斯坦福教程 - CoreDataTableViewController - 许可证

概述:

斯坦福iOS教程包含一个实现(标题+实现文件),以帮助在使用核心数据时使用表视图.

链接 - http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2011-fall

文件名 - CoreDataTableViewController.zip(包含下面提到的2个文件)

  • CoreDataTableViewController.h
  • CoreDataTableViewController.m

它在两个文件中都包含以下文本:

//  CoreDataTableViewController.h
//
//  Created for Stanford CS193p Fall 2011.
//  Copyright 2011 Stanford University. All rights reserved.
Run Code Online (Sandbox Code Playgroud)

  1. 我可以在iOS应用中使用这2个文件吗?
  2. 我应该和斯坦福的某个人联系吗?
  3. 我应该保留上述评论吗?

licensing core-data ios

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

NSTextView 滚动

如何制作NSTextView可滚动的?

问题:

  • 显示文本视图但不可滚动。我必须调整窗口大小才能看到更多内容

题:

  • 如何使文本视图可滚动。

代码:

class ViewController: NSViewController {

    private let textView                = NSTextView()

    //MARK: Manage Views

    override func viewDidLoad() {
        super.viewDidLoad()

        setupTextView()
    }


    private func setupTextView() {

        textView.isEditable      = false

        view.addSubview(textView)

        textView.translatesAutoresizingMaskIntoConstraints = false

        textView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        textView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
        textView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
        textView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
    }
}
Run Code Online (Sandbox Code Playgroud)

macos cocoa nstextview swift

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

iOS - 设置 - 模式Segue到表视图控制器

我想为iOS应用程序构建一个设置界面.

注意 - 这些设置通常会更改,所以我更喜欢设置界面应用程序而不是设置包

我的想法

  • 我喜欢模态 segue进入设置视图
  • 我的设置视图将是一个表格视图
  • 我更喜欢表视图是静态的(因为每个单元格可能会导致不同的视图)

问题:

  1. 模态视图中,似乎没有出现导航栏.我需要导航栏,以便我可以在其上创建一个"保存"按钮?

  2. 为了解决上面提到的问题,我创建了一个UIViewController来管理设置视图,并在UIViewController的视图下添加了一个导航栏和一个表视图(使用UITableViewController使导航栏与单元格一起滚动)

  3. 但是创建一个UIViewController不允许我创建一个包含静态内容的表

问题:

  1. 如何实现上述目标?
  2. 有没有更好的方法来设置屏幕?
  3. 是否更好地创建动态内容表并为不同类型的单元格(例如,带滑块/单元格的文本框等)提供不同的单元格标识符?

application-settings uitableview uiviewcontroller ios segue

0
推荐指数
1
解决办法
3447
查看次数