我正在使用键值编码来获取iTunes中的所有艺术家:
[self.iTunes valueForKeyPath:@"sources.@distinctUnionOfArrays.playlists.@distinctUnionOfArrays.tracks.artist"];
Run Code Online (Sandbox Code Playgroud)
现在,这很好用.这非常有效.我也想对专辑做同样的事情.
[self.iTunes valueForKeyPath:@"sources.@distinctUnionOfArrays.playlists.@distinctUnionOfArrays.tracks.album"];
Run Code Online (Sandbox Code Playgroud)
这里的问题是,有多个相同名称的专辑,但不一定是同一个艺术家.有没有办法获得每张专辑的歌曲,所以我可以找出它是什么艺术家,并获得它的封面?我知道有NSPredicate,但这很慢.
具体代码并不重要,我只需要键值编码部分.
谢谢!
我试图在我的快速应用程序中显示UIAlertView
alert = UIAlertView(title: "",
message: "bla",
delegate: self,
cancelButtonTitle: "OK")
alert!.show()
Run Code Online (Sandbox Code Playgroud)
=> BAD_ACESS错误: - [_ UIAlertViewAlertControllerShim initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:]()
所以我怀疑自己.我把它设置为零
alert = UIAlertView(title: "",
message: "bla",
delegate: nil,
cancelButtonTitle: "OK")
alert!.show()
Run Code Online (Sandbox Code Playgroud)
=> ARM_DA_ALIGN错误: - [_ UIAlertViewAlertControllerShim initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:]()
完整的代码
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, UIAlertViewDelegate {
@lazy var window = UIWindow(frame: UIScreen.mainScreen().bounds)
@lazy var locationManager = CLLocationManager()
var alert: UIAlertView? = nil
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
//setup dummy window
self.window.backgroundColor = UIColor.whiteColor()
self.window.rootViewController = UIViewController() …Run Code Online (Sandbox Code Playgroud) 我已经看过几次这个问题,但到目前为止我还没有能够使用任何后期解决方案取得成功.我想要做的是重命名应用程序的本地存储中的文件(也是Obj-c的新类型).我能够检索旧路径并创建新路径,但为了实际更改文件名,我必须编写什么?
我到目前为止:
- (void) setPDFName:(NSString*)name{
NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString* initPath = [NSString stringWithFormat:@"%@/%@",[dirPaths objectAtIndex:0], @"newPDF.pdf"];
NSString *newPath = [[NSString stringWithFormat:@"%@/%@",
[initPath stringByDeletingLastPathComponent], name]
stringByAppendingPathExtension:[initPath pathExtension]];
}
Run Code Online (Sandbox Code Playgroud) 我正在使用a CADisplayLink来做一个只插入一个值并重绘视图本身的视图动画.
例如,我有一个视图MyView,它有一个属性value,每当设置值时我调用setNeedsDisplay,视图知道要绘制什么.
动画这个我使用CADisplayLink,我希望视图在值之间"变形".我只是通过插入动画的开始和停止值来实现这一点:
- (CGFloat)interpolatedValue:(CGFloat)sourceValue withValue:(CGFloat)targetValue forProgress:(CGFloat)progress;
现在获得一个线性进展很容易并得到一个"特定曲线"(好)但我希望能够利用CAMediaTimingFunction这个(或其他一些预先存在的逻辑 - 我不想重新发明轮子':)
我想知道用户何时第一次购买我的应用...到目前为止,我还没有找到一个干净的方式,UDID似乎是唯一的选择.
理想情况下,我可以通过StoreKit获得收据,但到目前为止.. nada
我错过了什么吗?有人有想法吗?
情况是我有订阅和FIRST问题(从您购买应用程序时应该是免费的).如果我以后重新安装..我应该总是得到原始问题)
示例:我在10.2010购买应用程序我安装并运行它并从10.2010免费获得订阅问题(没有应用程序内购买)现在我删除了我安装它的应用程序1.2013我只能从10.2010免费获得订阅!不是新的
谁能告诉我这个错误代码中发生了什么
[UIViewController collectionView:numberOfItemsInSection:]: unrecognized selector sent to instance 0x8c9a6d0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController collectionView:numberOfItemsInSection:]: unrecognized selector sent to instance 0x8c9a6d0'
Run Code Online (Sandbox Code Playgroud)
collectionView代码是
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return [array count];
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么
我正在创建一个本地UILocalNotification并将其作为横幅显示给用户.是否可以进行设置,以便当用户点击它并返回应用程序时,应用程序将收到某种特定类型的通知数据?我想在应用程序中打开一个特定的视图控制器.我认为最好的方法是基本上向应用程序发送一个URL,或者是否有办法访问,UILocalNotification以便我可以测试哪种类型并采取正确的行动?
我今天开始使用apple swift(和许多其他人一样;))并且我在阅读plist时很费劲.
我从我的info.plist中读取了一个plist条目,这是一个NSArray,其中每个条目都是一个Dictionary.
let regionsToMonitor = NSBundle.mainBundle().infoDictionary["Regions"] as Array<Dictionary<String,AnyObject>>
for regionToMonitor in regionsToMonitor {
...
Run Code Online (Sandbox Code Playgroud)
每个地区的一个关键是一个专业.用objC术语表示NSNumber.我把它读作:
let major: Int? = regionToMonitor["major"] ? regionToMonitor["major"]!.integerValue : nil;
Run Code Online (Sandbox Code Playgroud)
现在我需要它作为CLBeaconMajorValue
所以我试着把它投到那个 as
clRegion = CLBeaconRegion(proximityUUID: uuid,
major: major! as CLBeaconMajorValue,
identifier: identifier)
Run Code Online (Sandbox Code Playgroud)
不起作用.UUID和标识符可以工作(我已经检查过另一个构造函数,但不是init
这也不好
let m = major! as CLBeaconMajorValue
Run Code Online (Sandbox Code Playgroud)
如何转换我的NSNumber/int?到CLBeaconMajorValue
我的目标是使用 Swift 解析大型 XML 文件 (20 GB)。NSXMLParser 和与 Swift 对象的桥接存在一些性能问题,因此我正在考虑多线程。具体有以下划分:
应按顺序解析数据,因此应保持输入顺序。我的想法是在 1 和 2 上运行 NSRunLoop,允许并行处理而不会阻塞。根据Apple的文档,线程之间的通信可以通过调用来实现performSelector:onThread:withObject:waitUntilDone:。然而这个符号在 Swift 中不可用。
我认为 GCD 不适合作为解决方案。两个工作线程都应该是长时间运行的进程,新工作以随机间隔进入。
如何使用 Swift 实现上述目标(例如,多线程上的 NSRunLoops)?
我正在尝试从自己的nib文件创建一个NSWindow,但它似乎比我预期的更难...
NSWindowController提供了init(windowNibName: String?)一种可以被子类覆盖的方法.似乎不可能在init(windowNibName: String?)不覆盖它的情况下调用基类(编译器显示错误消息,即没有采用该String参数的初始化程序).
但是当重写此init(...)方法时,您必须遵循初始化链,这会强制您调用指定的初始化程序.这个指定的初始化程序是init(window: NSWindow!).
这就是我现在被困住的地方......似乎我必须创建一个NSWindow对象(不知何故)才能将它传递给指定的初始化程序.但我不知道如何从nib文件创建NSWindow.
有人有任何线索吗?
ios ×5
swift ×4
objective-c ×3
cocoa ×1
enumeration ×1
iphone ×1
nspredicate ×1
nsrunloop ×1
storekit ×1
uialertview ×1
uiview ×1