小编Ton*_*ony的帖子

无法在Mac上注册Apple推送通知服务

我从Apple网站下载了PushyMac示例应用程序,但无法弄清楚为什么我无法在应用程序启动时注册推送通知.这是我得到的错误

2013-02-27 19:53:49.737 PushyMac[61525:303] applicationDidFinishLaunching:
2013-02-27 19:53:49.738 PushyMac[61525:303] didFinishLaunchingWithOptions: 
    notification name NSApplicationDidFinishLaunchingNotification
2013-02-27 19:53:49.753 PushyMac[61525:303] application:didFailToRegisterForRemoteNotificationsWithError: with
error = Error  Domain=NSOSStatusErrorDomain Code=1 "The operation
couldn’t be completed. (OSStatus error 1.)" (kCFHostErrorHostNotFound / 
kCFStreamErrorSOCKSSubDomainVersionCode / kCFStreamErrorSOCKS5BadResponseAddr / 
kCFStreamErrorDomainPOSIX / evtNotEnb / siInitSDTblErr / kUSBPending / dsBusError / 
kStatusIsError / kOTSerialSwOverRunErr / cdevResErr / EPERM:  / Error code is the version 
of SOCKS which the server wishes to use /  / POSIX errno; interpret using <sys/errno.h>  / 
event not enabled …
Run Code Online (Sandbox Code Playgroud)

macos cocoa push-notification apple-push-notifications

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

UIViewController 如何在 Swift 中拥有一个默认的无参数初始值设定项?

UIViewControllerclass 定义了一个指定的初始化器,init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?)没有方便的初始化器,但是,可以编写以下代码行并编译它(Xcode 6.1.1)

let vc = UIViewController()

这怎么可能?

根据Swift书,这里是初始化继承的规则

规则 1 如果您的子类没有定义任何指定的初始值设定项,它会自动继承其所有超类指定的初始值设定项。

规则 2 如果您的子类提供了其所有超类指定初始化器的实现——或者按照规则 1 继承它们,或者通过提供自定义实现作为其定义的一部分——那么它会自动继承所有超类便利初始化器。”

摘自:Apple Inc. “The Swift Programming Language”。电子书。 https://itun.es/us/jEUH0.l

因此UIViewController无法init()从其祖先超类继承该方法NSObject,那么初始化程序从何而来?

另一方面,因为每个 swift 类最终都必须调用其指定的初始化程序,这是否意味着initWithCoder:最终也会调用init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?)? 然而,在实践中似乎并非如此。

ios swift

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

NSEnumerationConcurrent是否保证多线程?

如果NSEnumerationConcurrent在使用块枚举集合时使用,Cocoa是否保证该块将同时执行?或者它实际上取决于需要枚举的对象数量?另外,当操作实际上是并发时,Cocoa如何决定启动多少线程?

编辑:其他问题

另一方面,是枚举NSEnumerationConcurrent选项同步还是异步的集合?换句话说,如果您在枚举代码下面有一些代码,它是否仅在所有并发枚举完成后才执行?(线程加入?)

cocoa multithreading

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

如何在ARC下将目标c对象的地址转换为void*volatile*?

我有一个简单的客观c对象

NSManagedObjectContext * moc = nil

现在我需要将它传递给接受类型参数的ARC环境中的函数

void *volatile * value

我试过了

&((__bridge void *)moc))

但是我得到以下编译器错误

Address expression must be lvalue or a function pointer

我也试过了

void ** addr = (__bridge void **)(&moc);
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误

Incompatible types casting 'NSManagedObjectContext * __strong *' to 'void **' with a __bridge cast

有没有办法先进行转换然后获取转换指针的地址?

编辑

更具体地说,我正在尝试实现另一个stackoverflow问题中描述的单例模式,但是我无法NSManagedObjectContext在ARC环境中将目标c 对象的地址输入到以下函数的第三个参数中.

OSAtomicCompareAndSwapPtrBarrier(void *__oldValue, void *__newValue, void *volatile *__theValue)

cocoa pointers casting objective-c automatic-ref-counting

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

如何理解IMAP服务器返回的BODYSTRUCTURE信息?

我正在使用python IMAPClient来从IMAP服务器检索电子邮件.我检索的一个属性是BODYSTRUCTURE.但是,我找不到任何有关如何解释返回值的文档.这是IMAP服务器返回的正文结构

16:12.679978 <  FLAGS (NotJunk $NotJunk \Seen) BODYSTRUCTURE ((("TEXT" "PLAIN" ("CHARSET" "us-ascii") NIL NIL "QUOTED-PRINTABLE" 4888 170 NIL NIL NIL)("TEXT" "HTML" ("CHARSET" "us-ascii") NIL NIL "QUOTED-PRINTABLE" 32407 479 NIL NIL NIL) "ALTERNATIVE" ("BOUNDARY" "Apple-Mail=_3AAA7CD7-3B07-406A-83CB-2C7762C3306E") NIL NIL)("APPLICATION" "PKCS7-SIGNATURE" ("NAME" "smime.p7s") NIL NIL "BASE64" 2414 NIL ("ATTACHMENT" ("FILENAME" "smime.p7s")) NIL) "SIGNED" ("BOUNDARY" "Apple-Mail=_DF4FE6BB-F796-46D7-A593-9723F4315DD2" "MICALG" "sha1" "PROTOCOL" "application/pkcs7-signature") NIL NIL))
Run Code Online (Sandbox Code Playgroud)

这是解析为python类型的相同主体结构.

"BODYSTRUCTURE": [
    [
        [
            [
                "TEXT",
                "PLAIN",
                [
                    "CHARSET",
                    "us-ascii"
                ],
                null,
                null,
                "QUOTED-PRINTABLE",
                4888,
                170,
                null,
                null, …
Run Code Online (Sandbox Code Playgroud)

python email imap

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

检查iOS 7上的麦克风权限,但不显示提示

检查在iOS 7,我能找到麦克风许可唯一记载的方法requestRecordPermission记录上AVAudioSession.https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/Reference/Reference.html#//apple_ref/occ/instm/AVAudioSession/requestRecordPermission:

但是,如果用户尚未做出决定,则使用此方法检查权限的行为将显示要求用户许可的警报,这可能是非常不合需要的.是否有工作来检查麦克风权限而不显示提示?

permissions microphone avaudiosession ios7

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

在Xcode 4.2中使用基于视图的表视图创建的应用程序可以在OS X 10.5-10.6上运行吗?

WWDC 2011和OS X Lion为构建接口引入了基于视图的表视图.但是,使用这些新工具创建的应用程序可以在Tiger和Snow Leopard上运行吗?或者我们是否必须回到基于单元格的表格视图?

cocoa interface-builder osx-lion

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

Cocoa和CoreFoundation返回的文件属性之间有什么区别?

在Cocoa中,您可以获取文件的属性,如下所示

NSString *path = @"/path/to/some/file";
NSError *err = ......;
NSDictionary *dic = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:&err];
NSLog(@"%@", dic);
Run Code Online (Sandbox Code Playgroud)

例如,它将返回键的目录

{
    NSFileCreationDate = "2009-12-02 10:03:38 +0000";
    NSFileExtensionHidden = 0;
    NSFileGroupOwnerAccountID = 80;
    NSFileGroupOwnerAccountName = admin;
    NSFileHFSCreatorCode = 0;
    NSFileHFSTypeCode = 0;
    NSFileModificationDate = "2009-12-02 19:20:54 +0000";
    NSFileOwnerAccountID = 501;
    NSFileOwnerAccountName = Tony;
    NSFilePosixPermissions = 511;
    NSFileReferenceCount = 1;
    NSFileSize = 496988;
    NSFileSystemFileNumber = 5187496;
    NSFileSystemNumber = 234881029;
    NSFileType = NSFileTypeRegular;
}
Run Code Online (Sandbox Code Playgroud)

现在,您还可以使用CoreFoundation MDItem获取文件属性

NSString *path = @"/path/to/some/file";
MDItemRef mdItem …
Run Code Online (Sandbox Code Playgroud)

filesystems cocoa macos-carbon

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

无需try/catch即可安全地访问Python中的对象

在Objective-C中,您可以执行[variable valueForKeyPath:@"abc.def"]或者[[variable abc] def]如果 abc不存在,variablenil最终会获得一个值,并且不会出现错误或异常.这真的很方便.Python中有这样的东西吗?我知道你可以做(​​至少对于词典)

abc = variable.get('abc', None)
if abc:
    def = abc.get('def', None)
Run Code Online (Sandbox Code Playgroud)

要么

try:
    def = variable.get('abc').get('def')
except:
    pass
Run Code Online (Sandbox Code Playgroud)

这似乎令人难以置信的冗长.当我只想访问对象的属性或获取None值时,有更简单的方法吗?

python idioms accessor

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

如何故意在打字稿中定义一个"空接口"

TypeScript允许检查是否检查未知属性.下列

interface MyInterface {
  key: string
}

const myVar: MyInterface = {
  asda: 'asdfadf'
}
Run Code Online (Sandbox Code Playgroud)

会失败的

输入'{asda:string; }'不能赋值为'MyInterface'.
对象文字只能指定已知属性,'myInterface'类型中不存在'asda'.

但是,此语句将编译没有任何问题.空接口将接受任何值

interface EmptyInterface {
}

const myVar: EmptyInterface = {
  asda: 'asdfadf'
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我真的想为可能没有任何属性的空对象定义类型,该怎么办?我怎样才能在打字稿中实现这一目标?

interface typescript

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