Tag: 目标C

有没有什么办法可以在C中使用Objective-C库?

我想用下面的代码(用arm-gcc编译) NSString *newText; CLLocationManager * locationManager = [[CLLocationManager alloc] init]; [locationManager startUpdatingLocation]; [locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters]; //[locationManager setDelegate:self]; CLLocation* location = [locationManager location]; newText = [[NSString alloc] initWithFormat: @"Your Position : %f %f", [location horizontalAccuracy], [location verticalAccuracy]]; 有没有什么办法可以在c中使用objective-c库(就像在c中使用c ++库)?

自定义Google Sign In在GIDSignInDelegate协议上抛出exception

我正在用obj-c编写一个iOS应用程序,并使用Google SignIn SDK来执行Google SignInstream程。 我想能够自定义button和动作一点,所以我继续执行GIDSignInDelegate自己的协议基于他们的文档。 但它没有理由抛出和exception。 这是我的视图控制器的最小代码。 viewcontroller.m #import "ViewController.h" #import <FBSDKLoginKit/FBSDKLoginKit.h> @interface ViewController () @property (weak, nonatomic) IBOutlet UIButton *GoogleSignIn; @end @implementation ViewController – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } – (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can […]

使用GPU(可能CIFilters)将图像放在较大的canvas上,而不使用Image Context

比方说,我有一个100×100的图像。 我想将图像放置到500×500的较大的canvas上。 我目前的做法是使用UIGraphics创build一个Context,然后将图像绘制到上下文中。 UIGraphics.BeginImageContext(….); ImageView.Draw (….); 这很好,但不像我希望的那样快。 我注意到CIFilters速度非常快。 有没有一种方法可以使用CIFilters或使用GPU而不是CPU的另一种方法在较大的canvas上放置图像? 我已经用CIFilters CICrop和CIPerspectiveTransform进行了实验,但似乎无法得到我想要的结果… 原始图片100×100 我想要的结果图像在500×500。 我只是想要使用CIFilters或某些GPU操作来增加图像大小。 我尝试使用CICrop做一个“反向作物”,但是这不起作用。 注意我指定了CIVector的大小为500×500,即使图像本身是100×100,结果图像完全忽略了额外的空间,如果closures,剪切。 这是我的代码: CICrop crop = new CICrop(); crop.Image = ImageView.Image.CGImage; crop.Rectangle = new CIVector(0, 0, 500, 500); ImageView.Image = new UIImage(crop.OutputImage); Console.WriteLine("ImageView.Image.size = "+ ImageView.Image.Size);

使用Swift UIApplication子类的Objective-C项目。 错误:类未加载

我有一个Objective-C编写的项目,我刚刚添加了一个UIApplication子类使用Swift: RMFApplication.swift (实施在后)。 但是,我得到这个错误: 由于未捕获exception'NSInternalInconsistencyException',原因:'无法实例化UIApplication子类实例。 没有名为RMFApplication的类被加载。 在我的info.plist中,我正确地指定了NSPrincipalClass下的名字,并且对它进行了双重检查。 我读了这个答案 ,然后看看我自己的main.m里面说: return UIApplicationMain(argc, argv, nil, NSStringFromClass([RMFAppDelegate class])); 。 UIApplicationMain的文档说,如果nil被指定为thrid值,那么假设UIApplication ,但为什么我的错误信息包含我的自定义类名? 我不得不假设它会读取info.plist值。 注意: UIApplication的子类化与RMFApplication.h和RMFApplication.m 。 唯一改变的是这些文件的重命名以及添加了一个RMFApplication.swift文件,这个文件没有任何警告: import UIKit class RMFApplication: UIApplication { override func openURL(url: NSURL) -> Bool { println(url.description) return false; } } 我知道我可以继续使用Objective-C,但是我想尝试移植到Swift,除非两者真的不能很好的搭配。

在横屏模式下全屏播放video,当我的整个应用程序locking在纵向模式下

我想以全屏模式播放横向模式的video。 而我的应用程序locking在肖像模式。 如何实现这一点。 请帮帮我。 提前致谢

将textLabel垂直放置在tableView的UITableViewHeaderFooterView中:willDisplayHeaderView:forSection:

我正在尝试为tableViewHeader垂直居中文本标签。 这里是相关代码- (void) tableView: (UITableView*) tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section: – (void) tableView: (UITableView*) tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section { if(![view isKindOfClass:[UITableViewHeaderFooterView class]]){ return; } UITableViewHeaderFooterView *tableViewHeaderFooterView = (UITableViewHeaderFooterView *) view; UILabel* label = tableViewHeaderFooterView.textLabel; label.textAlignment = NSTextAlignmentCenter; label.font = [UIFont rev_lightAppFontOfSize: 24.0f]; label.textColor = [UIColor rev_colorWithHex: 0x858585]; label.text = [label.text capitalizedString]; label.center = tableViewHeaderFooterView.center; // label […]

有什么方法可以从iPhone上的标准input读取,无论是硬件或模拟器?

当我从XCodedebuggingOSX应用程序时,我可以从XCodedebugging控制台与应用程序的控制台进行通信 – 例如,应用程序可以将printf()为stdout并显示在XCodedebugging控制台上,我的应用程序可以调用fgets()在我可以在XCodedebugging控制台中键入input的stdin上。 看起来像XCode,当debuggingiOS的iPhone应用程序,挂钩stdout ( printf()等等工作正常),但不是stdin ? 有没有人在iOS / iPhone上使用stdin ? 这在debugging过程中非常有用 – 即使是iOS Cocoa应用程序也是如此。 我可以用一些更复杂的方式来处理这个问题,比如使用套接字,但是我只想让XCode为我做这个。 更新: 那么,这将解释它。 iOS模拟器实际上为stdin打开/dev/null 。 有可能找出stdout要去哪里(通常是/dev/ttys00X ),然后用O_RDONLY重新打开并将其分配给stdin。 这适用于iOS模拟器,但它看起来像串行连接到iPhone硬件的线路是错误的 – 您可以继续在Xcodedebugging控制台inputinput,它永远不会被发送到iPhone硬件(和您的程序运行在iPhone上硬件将只是坐着等待的东西显示在stdin又名/dev/ttys00X )。 我不知道有什么办法可以使iPhone硬件的工作?

断点在Xcode 7中没有被击中

我有一个Xcode项目,其中包括一个子项目。 升级到Xcode 7后,子项目中的断点不会被触发,也不能进入子项目的函数调用。 有些断点确实被打了,但是他们只是显示了调用的汇编,所以看起来子项目没有被正确的符号化。 我已经检查了所有常见的事情,即生成debugging符号,在debugging上构buildconfiguration不是发布和Xcode项目设置中显示的这种性质的东西。 还有什么我可能会失踪? 在Xcode 6.4中,这不是一个问题。

在swift中,Self.Type不能直接转换为扩展名为Objective-c类的AnyClass

我试图创build结构方法来创build正确的笔尖名称的UIViewController(以修复iOS8默认的初始化问题)。 为此,我添加了扩展名: extension UIViewController { class func create() -> Self { if #available(iOS 9.0, *) { return self.init() } else { let clsName = NSStringFromClass(self).componentsSeparatedByString(".").last! return self.init(nibName: clsName, bundle: nil) } } } 然而,编译器问题错误: Cannot convert value of type 'Self.Type' to expected argument type 'AnyClass' (aka 'AnyObject.Type') NSStringFromClass(self) Cannot convert value of type 'Self.Type' to […]

OpenCV UIImageToMat链接器在xcode中失败

我在xcode上写了一些OpenCV代码,但是当我编译时,有两种方法得到链接器失败: UIImageToMat和MatToUIImage 我正在使用opencv2.framework(从opencv网站,版本3.1为iOS),它工作正常,然后我使用cocoapods和集成opencv 3.1.1在我的项目和所有的代码工作相同,除了这两个function我连接器失败。 我不明白为什么他们不工作,当我删除#include "opencv2/imgcodecs/ios.h"它说函数不存在(而不是链接器失败)。 有谁知道如何解决这个问题? 谢谢