小编Luc*_*ano的帖子

UIViewController里面的UITableViewController

我是iOS和Objective-C的新手,我在理解控制器如何工作方面遇到了一些麻烦.

在我的代码中,我有一个UIViewController(我的自定义控制器由storyboard分配),在其中,与其他对象一起,我希望有一个由不同控制器处理的表.这样做的正确方法是什么?

storyboard uitableview uiviewcontroller ios

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

FBSDKLoginManager:架构x86_64 +链接器命令的未定义符号失败,退出代码为1

我刚刚将Facebook iOS SDK升级到v.4.0.1,我收到了以下错误:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_FBSDKLoginManager", referenced from:
      objc-class-ref in Controller1.o
      objc-class-ref in AppDelegate.o
      objc-class-ref in Controller2.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

我已经尝试更改链接器:使用-all_load我得到相同的错误,而使用-force_load则变为"ld:找不到文件:-fobjc-arc".有解决方案吗

xcode ios facebook-ios-sdk

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

CAShapeLayer:开始/结束时的线帽不同

我正在使用 CAShapeLayer 绘制一个半圆,我希望在开头有一个 kCGLineCapRound ,在结尾有一个 kCGLineCapButt 。我怎样才能做到这一点?

UIBezierPath *circlePathMax = [UIBezierPath bezierPathWithArcCenter:CGPointMake(self.view.center.x, self.view.center.y) radius:radius startAngle:angle1 endAngle:angle2 clockwise:YES];
             CAShapeLayer *circleMax;
             circleMax               = [CAShapeLayer layer];
             circleMax.path          = circlePathMax.CGPath;
             circleMax.lineCap       = kCALineCapRound;
             circleMax.fillColor     = [UIColor clearColor].CGColor;
             circleMax.lineWidth     = 10;
             circleMax.strokeColor = [UIColor colorWithRed:255.0/255.0f green:255.0f/255.0f blue:255.0f/255.0f alpha:0.7f].CGColor;
             circleMax.zPosition     = 3;
             [self.view.layer addSublayer:circleMax];
Run Code Online (Sandbox Code Playgroud)

我只能指定一个通用 lineCap

cashapelayer ios

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

UITextField:右视图可访问性(voiceOver)

我在UITextField的右视图中添加了两个UIButton,但是voiceOver看不到它们(它“仅读取”包含的视图)。我已经将右视图的accessibilityElementsHidden设置为“否”。我不明白我在做什么错...

编辑:我子类化UITextField,可以与此相关吗?

accessibility uitextfield ios voiceover

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

iOS:以编程方式删除IAP收据

我正在测试自动更新订阅,但遇到以下问题:

  1. 我在设备A上购物
  2. 使用相同的AppleID,我将恢复设备B上的收据
  3. 我在设备B上更改了AppleID(通过设备设置)
  4. 我仍然在设备B上拥有收据,这使我成为付费用户

通过这种方式,只需使用付费AppleID登录一次就可以复制购买的商品。那么,如何从设备中删除收据?或告诉我是否还有其他解决方案...

in-app-purchase ios

5
推荐指数
0
解决办法
547
查看次数

核心数据 - NSManagedObject(带有关系)到 JSON

我是核心数据新手,我想将 NSManagedObject (从本地数据库获取)转换为 JSON 字符串。这是一个具有关系的简单对象,如上所示:

实体

这是我用于获取的代码:

func loadData() {
    //1
    guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
        return
    }

    let managedContext = appDelegate.persistentContainer.viewContext

    //2
    let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Bill")

    //3
    do {
        let fetchedData = try managedContext.fetch(fetchRequest) as! [Bill]
    } catch let error as NSError {
        print("Could not fetch. \(error), \(error.userInfo)")
    }
}
Run Code Online (Sandbox Code Playgroud)

如何将 fetchedData 转换为 JSON 字符串?我想使用 Codable,但我不知道它是否受支持。

json core-data swift

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

Swift:NFCError Code=202“会话意外失效”

我正在尝试使用 NFC。我按照以下步骤操作:

  • 在 AppID 配置中启用 NFC 应用 ID 配置

  • 创建一个配置文件并安装它 供应

  • 向目标添加了 NFC 功能 NFC 目标 NFC 目标代码

  • 在 plist 文件中添加了隐私说明 列表

在此之后,我导入了 CoreNFC 并实现了这些代码:

@available(iOS 11.0, *)    
    extension EventPreviewViewController: NFCNDEFReaderSessionDelegate {
            func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {
                let alert = UIAlertController.withOkButton(andTitle: NSLocalizedString("TitleWarning"), andText: NSLocalizedString("ErrorNFCInvalidate"), okHandler: nil)
                self.present(alert, animated: true, completion: nil)
            }

            func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
                // TODO
            }
        }


class EventPreviewViewController: UITableViewController {
@available(iOS 11.0, *)
var nfcSession: NFCNDEFReaderSession {
        return NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: true)
    }

    @IBAction func startAccess(_ …
Run Code Online (Sandbox Code Playgroud)

nfc ios swift

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

Swift:移动 UIView 中心后恢复它

我使用手势来缩放和移动 UIImageView(例如 Instagram 缩放)。当手势结束时,我想恢复 UIImageView 初始位置,但我无法获取初始中心的副本,因为它是引用类型。使用:

let prevCenter = myImage.center
Run Code Online (Sandbox Code Playgroud)

当然是没用的。我怎样才能复制它?

value-type ios swift

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

Swift 5 - Facebook 登录:安装 Facebook 应用程序时不会调用 LoginManager() 回调

我已经使用 cocoapods 将 Facebook SDK 更新到最新版本:

  • 使用FBSDKCoreKit (5.8.0)
  • 使用FBSDKLoginKit (5.8.0)
  • 使用 FacebookCore (0.9.0)
  • 使用 Facebook 登录 (0.9.0)

当安装 Facebook 应用程序时,LoginManager()不会调用回调。当未安装应用程序并使用浏览器时,它可以工作。

let loginManager = LoginManager()
loginManager.logIn(permissions: [.publicProfile, .email], viewController: self, completion: { loginResult in
    switch loginResult {
    case .failed(let error):
        print("\(error)")
    case .cancelled:
        print("cancelled")
    case .success(let grantedPermissions, let declinedPermissions, let accessToken):
        print("\(grantedPermissions) \(declinedPermissions)")
    }
})
Run Code Online (Sandbox Code Playgroud)

任何想法?

facebook facebook-login facebook-ios-sdk swift

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