小编And*_*nez的帖子

URLSessionUploadTask立即自动取消

我有这个奇怪的问题,其中新创建的内容URLSessionUploadTask立即被取消.我不确定它是否是目前Xcode 8测试版的一个错误.

我怀疑这可能是一个错误,因为我即将发布的代码只运行一次.之后没有对它进行任何更改,然后它就停止了工作.是的,它实际上只运行一次,然后停止工作.我会在最后发布错误.

我将在下面发布代码,但首先我将总结这里的逻辑是如何工作的.

我的测试或用户公开的API(用于Playgrounds或直接在应用程序中使用的IE)调用该authorize方法.此authorize方法将依次调用buildPOSTTask,该方法将构造有效的URL并返回URLSessionUploadTaskauthorize方法使用的URL .

话虽如此,代码如下:

会议:

internal let urlSession = URLSession(configuration: .default)
Run Code Online (Sandbox Code Playgroud)

创建上传任务的功能:

internal func buildPOSTTask(onURLSession urlSession: URLSession, appendingPath path: String, withPostParameters postParams: [String : String]?, getParameters getParams: [String : String]?, httpHeaders: [String : String]?, completionHandler completion: URLSessionUploadTaskCompletionHandler) -> URLSessionUploadTask {
    let fullURL: URL
    if let gets = getParams {
        fullURL = buildURL(appendingPath: path, withGetParameters: gets)
    } else {
        fullURL = URL(string: path, relativeTo: baseURL)!
    } …
Run Code Online (Sandbox Code Playgroud)

ios nsurlsession nsurlsessionuploadtask swift3 xcode8

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

如何在 UIScrollView 中移动 UIImageView?

在我的应用程序中,我在 UIScrollView 中有一个 UIImageView。我想缩放和拖动 UIImageView。我设法进行了缩放,但似乎找不到使用 touchesMoved 在 UIScrollView 内拖动图像的方法。我在谷歌上搜索过,但似乎我发现的唯一方法只能在 iOS 3.0+ 中使用,但现在在 iOS 4.0+ 中已过时。那么如何用手指拖动 UIScrollView 中的图像呢?

iphone cocoa-touch objective-c uiscrollview uiimageview

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

从FacebookSDK for iOS获取国家,州,城市

我正在尝试使用一个用户的国家,州和城市FBGraphObject.返回FBGraphObject包含以下信息:

hometown = {
    id = 112118618814985;
    name = "La Paz, Bolivia";
};
Run Code Online (Sandbox Code Playgroud)

(我的城市在玻利维亚国家被称为拉巴斯).

如果它实际上会返回"状态",这可能会非常有效.如果来自美国堪萨斯州威奇托市的人运行我的应用程序,结果将是:

hometown = {
    name = "Wichita, Kansas";
};
Run Code Online (Sandbox Code Playgroud)

(那个人的城市是威奇托,在威奇托州,在美国......问题是FBGraphObject不告诉我,这是在美国).

当我第一次看到图形对象的hometown属性时,如果我只是使用昏迷标记来展开字符串,我立即认为我可以使用它来获取:

La Paz
Bolivia
Run Code Online (Sandbox Code Playgroud)

然后我立即知道第一个物体代表一个城市,第二个物体代表一个国家.

但对于像美国这样的国家,虽然第一个元素仍然代表一个城市,但第二个元素代表一个州,因此,我无法存储从那里标记化的数据.

如何使用FacebookSDK for iOS正确获取国家,州,城市?我正在摸不着头脑,因为每个设法做到这一点的人似乎都使用PHP,但我需要这个才能在iPhone上运行.

编辑:为了记录,这是我试图获得一切:

[FBRequestConnection startForMeWithCompletionHandler:
 ^(FBRequestConnection *connection, id result, NSError *error) {
    if(error == nil)
    {
        FBGraphObject<FBGraphUser, FBGraphLocation> *graph = result;
        NSLog(@"%@", graph);

        [[SPAccount sharedAccount] linkFacebookAccountWithGraphObject:graph
         andCompletionBlock:^(BOOL linked) {}];
    }
}];
Run Code Online (Sandbox Code Playgroud)

以下所有回报nil:

graph.location.country
graph.country
graph.location.location.country
Run Code Online (Sandbox Code Playgroud)

ios facebook-ios-sdk ios7

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

SecAddItem 仅返回 errSecParam,无论我做什么

由于某种原因,我无法让这个简单的钥匙串代码工作。

//Let's create an empty mutable dictionary:
NSMutableDictionary *keychainItem = [NSMutableDictionary dictionary];

NSString *username = self.nwUsernameTxtFld.text;
NSString *password = self.passwordTxtFld.text;

//Populate it with the data and the attributes we want to use.

keychainItem[(__bridge id)kSecClass] = (__bridge id)kSecClassInternetPassword; // We specify what kind of keychain item this is.
keychainItem[(__bridge id)kSecAttrAccessible] = (__bridge id)kSecAttrAccessibleWhenUnlocked; // This item can only be accessed when the user unlocks the device.
keychainItem[(__bridge id)kSecAttrServer] = @"http://www.myawesomeservice.com";
keychainItem[(__bridge id)kSecAttrAccount] = username; //Our username.

if(SecItemCopyMatching((__bridge CFDictionaryRef)keychainItem, NULL) == noErr) …
Run Code Online (Sandbox Code Playgroud)

keychain security-framework ios ios7

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

NSUserActivity未被Spotlight索引

我试图让我的NSUserActivity被iOS中Spotlight中的私有索引编入索引.我已经按照Apple的索引活动和导航点指南中的所有步骤进行了操作,但我的活动似乎根本没有被聚光灯索引.

指南说:

为了保证活动及其元数据被编入索引,您必须拥有对活动的强引用,直到将其添加到索引中.有两种方法可以执行此操作:第一种方法是将活动分配给创建活动的控制器对象中的属性.第二种方法是使用UIResponder对象的userActivity属性.

我选择了第一个选项(在我的视图控制器中创建一个属性来保存NSUserActivity).

var lastSearchedUserActivity: NSUserActivity?
Run Code Online (Sandbox Code Playgroud)

这个想法是,当用户搜索某些内容时,他的最后一个查询将在设备上编入索引.我有以下方法准备用户活动和(据称)索引它:

func prepareLastSearchedUserActivity(tags: [String], server: Server) {
    if Settings.applicationIndexedUserActivitiesAsShortcutTypes.contains(.LastSearched) {
        print("Get ready to index. and tags \(tags.reduce("") { "\($0) \($1)" })")
        let activity = NSUserActivity(activityType: ShortcutType.LastSearched.rawValue)

        activity.title = server.serverName
        activity.userInfo = ["tags": tags, "server name": server.serverName]

        let attributeSet = CSSearchableItemAttributeSet()
        attributeSet.contentDescription = tags.reduce("") { "\($0) \($1)" }
        attributeSet.relatedUniqueIdentifier = ShortcutType.LastSearched.rawValue

        activity.contentAttributeSet = attributeSet
        activity.keywords = Set(tags)
        activity.eligibleForSearch = true
        activity.eligibleForHandoff = false
        activity.becomeCurrent()
        self.lastSearchedUserActivity = activity
        //self.lastSearchedUserActivity?.becomeCurrent()
    }
}
Run Code Online (Sandbox Code Playgroud)

调用此方法时没有问题,但活动无法搜索:我尝试使用title …

spotlight ios ios9 ios-searchapi nsuseractivity

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

如何向Pivot添加其他信息(使用Fluent)?

在Vapor中,我们可以通过创建Pivot<U, T>对象来创建多对多关系,其中UT是我们想要链接在一起的模型.因此,如果我想创建一个系统,其中Users可以有多个Files而且许多Files可以属于许多Users,我会将它们关联起来:

var alice = User(name: "Alice")
try! alice.save()
var sales = File(name: "sales.xclx")
try! sales.save()

var pivot = Pivot<User, File>(alice, sales)
try! pivot.save()
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚我的生活是如何制作一个Pivot<User, File>包含额外信息的?例如,我想知道这个文件何时与Alice关联,或者对它有什么权限.

在Relational数据库上,Fluent为该Pivot<User, File>类型创建此表.

+---------+---------+------+-----+---------+----------------+
| Field   | Type    | Null | Key | Default | Extra          |
+---------+---------+------+-----+---------+----------------+
| id      | int(11) | NO   | PRI | NULL    | auto_increment |
| file_id | int(11) | NO …
Run Code Online (Sandbox Code Playgroud)

swift vapor

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

为什么我得到一个线程 1:EXC_BAD_ACCESS(代码 = EXC_I386_GPFLT)

var soundPoolLabel: UILabel {
  let label = UILabel(frame: CGRect(x: 20, y: 90, width: 540, height: 94))
  label.text = "SoundPool"
  label.textColor = UIColor.black
  label.font = UIFont(name: "Bodoni 72 Oldstyle", size: 80)
  let attributedString = NSMutableAttributedString(string: label.text!)
  attributedString.addAttribute(kCTKernAttributeName as NSAttributedStringKey, value: CGFloat(1.0), range: NSRange(location: 0, length: attributedString.length))
  label.attributedText = attributedString
  return label
}

soundPoolLabel.translatesAutoresizingMaskIntoConstraints = false
let topConstraint = soundPoolLabel.topAnchor.constraint(equalTo: view.topAnchor, constant: 90)
NSLayoutConstraint.activate([topConstraint])
Run Code Online (Sandbox Code Playgroud)

exc-bad-access swift

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

在UINavigationController之上呈现模态视图控制器

我的应用程序位于UINavigationController下方,因此位于UINavigationBar下方.我想在这个UINavigationBar之上呈现一个模态视图控制器,因为我写的控制器没有意义,如果它在它下面(也就是说,我想在显示这个视图控制器时隐藏导航栏).

使用此代码呈现它:

    ukc = [[UnlockKeyboardViewController alloc] init];
    [self presentModalViewController:ukc animated:NO];
Run Code Online (Sandbox Code Playgroud)

导致Modal视图控制器低于UINavigationBar.当我显示这个模态视图时,UINavigationBar不应该出现.我怎么能绕过那个?

PS:这是一个越狱应用程序,所以没有Interface Builder.

iphone uikit uinavigationcontroller modalviewcontroller ios

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

在以编程方式设置提示时,UINavigationBar与UITableView重叠

我有一个UINavigationController包含一个UITableViewController.这个导航控制器推动其他UITableViewControllers,最终这些表视图控制器将有一个提示.

问题是当我以编程方式设置此提示时,它与其下方的表视图的内容重叠.

在此输入图像描述

(导航栏正在隐藏搜索栏)

我在SO中四处寻找并找到了答案.我在受影响的视图控制器中以两种不同的方式尝试了该建议,但没有任何改变:

override func viewDidLoad() {
    super.viewDidLoad()
    self.edgesForExtendedLayout = .None;
    self.extendedLayoutIncludesOpaqueBars = false;
    self.navigationItem.title = NSLocalizedString("Add Anime or Manga", comment: "")
    self.navigationItem.prompt = NSLocalizedString("Search media belonging to this series.",  comment: "")
}
Run Code Online (Sandbox Code Playgroud)

-

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.title = NSLocalizedString("Add Anime or Manga", comment: "")
    self.navigationItem.prompt = NSLocalizedString("Search media belonging to this series.",  comment: "")
    self.edgesForExtendedLayout = .None;
    self.extendedLayoutIncludesOpaqueBars = false;
}
Run Code Online (Sandbox Code Playgroud)

相同答案中的评论与此Apple指南相关联,以防止视图相互重叠.问题UITableViewController似乎没有顶部/底部布局指南,因此我无法创建约束(另一个SO答案说表视图控制器中的布局是无关紧要的).

因此,我已经用尽了所有选择.

uinavigationbar uitableview uinavigationcontroller ios autolayout

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

"无法将IntentReceiver解析为类型".为什么?

我正在构建一个需要IntentReceiver的小应用程序.

实际上,我是Android开发的新手,我正在iOS开发之后进行切换.我有以下代码:

package com.TheIntent;

import android.content.*; //I added this AFTER I got the error message

public class ReceiveSMS extends IntentReceiver {

}
Run Code Online (Sandbox Code Playgroud)

但是给了我标题中的错误.我正在关注代码,因为它是在我正在阅读的关于Android开发的书中写的,在谷歌搜索了一段时间之后我发现我必须包含android.content.IntentReceiver.但是你可以看到,它不起作用.

我正在使用SDK 2.3.3.

感谢您提供的任何帮助!

java android android-sdk-2.3

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