小编Par*_*fna的帖子

语义问题:属性的合成getter遵循Cocoa命名约定来返回'拥有'对象

我目前正在使用iOS 5 SDK试图开发我的应用程序.我正在尝试将NSString作为一个属性,然后在.m文件中合成它(之前我已经完成了这个,没有任何问题).现在,我遇到了这个问题:"语义问题:属性的合成getter遵循Cocoa命名约定来返回'拥有'对象."

这是我的代码:.h

@interface ViewController : UIViewController {
     NSString *newTitle;
}
@property (strong, nonatomic) NSString *newTitle;
Run Code Online (Sandbox Code Playgroud)

.M

@synthesize newTitle;
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何解决这个问题?谢谢!!

variables properties objective-c ios5 automatic-ref-counting

282
推荐指数
5
解决办法
8万
查看次数

保持NSThread存活并在其上运行NSRunLoop

所以我正在开始一个新的NSThread,我希望以后可以通过调用来使用它performSelector:onThread:....根据我的理解,调用方法将该调用添加到该线程上的runloop,因此在下一次迭代时,它将弹出所有这些调用,然后调用它们,直到没有任何东西可以调用.所以我需要这种功能,一个空闲的线程准备工作,我可以调用它.我当前的代码如下所示:

   - (void)doInitialize
   {
       mThread =  [[NSThread alloc] initWithTarget:self selector:@selector(runThread) object:nil];
       [mthread start];
   }

   - (void)runThread
   {
       NSAutoReleasePool *pool = [[NSAutoReleasePool alloc] init];

       // From what I understand from the Google machine is that this call should start the
       // runloop on this thread, but it DOESN'T. The thread dies and is un-callable
       [[NSRunLoop currentRunLoop] run];

       [pool drain];
   }

   - (void)scheduleSomethingOnThread
   {
       [self performSelector:@selector(hardWork) onThread:mThread withObject:nil waitUntilDone:NO];
   }
Run Code Online (Sandbox Code Playgroud)

但是线程没有保持活动状态,performSelector:onThread没有做任何事情.我该怎么做正确的方法?

cocoa objective-c foundation nsthread nsrunloop

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

禁止面向用户的文本应使用本地化的字符串宏警告

我正在使用未本地化的字符串并低于警告

面向用户的文本应使用本地化的字符串宏

如何抑制此警告?

cocoa objective-c xcode8

18
推荐指数
2
解决办法
3443
查看次数

在设备控制台中查看os_log消息

我正试图通过统一记录(os_log)从我的应用程序中退出一些

这是日志的初始化:

var osLog : OSLog = OSLog(subsystem: "com.test.testapp", category: "native-tester")
Run Code Online (Sandbox Code Playgroud)

以下是我如何使用它:

os_log("iOS App initialized successfully!", log: osLog, type:.info)
Run Code Online (Sandbox Code Playgroud)

正常调试应用程序时,日志会在控制台输出上正确显示,但是当我查看设备控制台时(在"设备和模拟器"窗口中显示),我根本看不到它们.

本文说您应该配置系统以使用调试日志

sudo log config --mode "level:debug" --subsystem com.test.testapp
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有什么不同.我猜这是因为我正在配置mac来查看日志,而不是iPad.

如何在设备控制台中查看os_log中的ipad/iphone日志?

iphone xcode logging ios swift

17
推荐指数
4
解决办法
6123
查看次数

我的系统拒绝使用NSAppleScript类关闭/重启

CFPlugin用于10.5上的上下文菜单和图标覆盖(相同scplugin).对于我的应用程序和查找程序之间的通信,我正在使用distributed object.在Contextual menu items文件夹中安装我的插件后,我的系统拒绝重启/关闭/注销.在活动监视器中,我无法退出查找程序,只有强制退出正在查找查找程序.在控制台上我得到10.5.8

ERROR | -[ApplicationManager(AppleEventHandling) _tryQuitAllForRequestor:replyEvent:] | _tryQuitAllForRequestor - _vproc_set_global_on_demand returned error -1805620379  
Run Code Online (Sandbox Code Playgroud)

如果没有Finder和我的应用程序之间的通信,系统重启/关闭/注销工作正常.
在10.5.4

loginwindow[41]: ERROR | WSActivateApp | SetFrontProcess({0, 7980956}) returned error -600. Unable to activate process.

loginwindow[41]: ERROR | -[ApplicationManager(AppleEventHandling) _tryQuitAllForRequestor:replyEvent:] | _tryQuitAllForRequestor - _vproc_set_global_on_demand returned error -1780878507
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?

编辑

我的问题解决了.我NSAppleScript用来执行苹果脚本.现在我正在使用NSTask,我的系统重启/关闭/注销工作正常.有人可以解释一下这个原因吗?

applescript finder macos-carbon objective-c core-foundation

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

为线程安全同步NSMutableArray?

我有一个Threaded应用程序,其中有一个NSMutableArray,包含NSManagedObjects,现在我希望我的数组可以被任何线程一次访问一次.那么我如何同步该数组,或者可以将锁定机制放在其上.

提前致谢 ...

iphone synchronization locking nsmutablearray

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

使用AppleScript设置窗口的位置

我正在尝试使用AppleScript设置Messages.app聊天窗口的位置.

tell application "System Events"
    set position of window 1 of application "Messages" to {100, 100}
end tell
Run Code Online (Sandbox Code Playgroud)

使用此代码我收到一个错误:

error "Messages got an error: Can’t set «class posn» of window 1 to {100, 100}." 
number -10006 from «class posn» of window 1
Run Code Online (Sandbox Code Playgroud)

那是什么意思?

如果我使用Finder尝试相同的代码,它可以工作.但是大多数其他应用程序都不起作用.

macos cocoa applescript finder appleevents

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

Finder Sync Extensions是否需要配置文件?

OS X 10.10 Yosemite引入了Finder Sync扩展.我在将这些集成到现有项目时遇到了麻烦.我有一个现有的组件,我希望扩展生活.此组件不通过应用商店分发,并且General-> Settings下的"Identity - > Signing"设置为"None"

在Build Settings下,我有以下内容:

  • 代码签名身份:开发者ID应用程序:
  • 供应配置文件:无

我阅读了一些有关在应用程序商店之外分发应用程序的信息,但没有提及有关配置文件的任何信息.

当我使用Xcode 6.1 beta 2模板创建Finder Sync扩展目标时,它会将其设置为None的"General - > Identity - > Signing",就像父组件一样.构建设置具有以下内容:

  • 代码签名身份:开发者ID应用程序:
  • 配置文件:(未设置)

但是,当我构建时,它会说:

"找不到匹配的配置文件"

"此产品类型必须使用配置文件构建,但未找到与"开发者ID应用程序:[团队帐户]"标识匹配的配置文件.Xcode可以通过从成员中心下载新的配置文件来解决此问题.

在构建应用扩展时是否有新的配置配置文件要求?我应该使用不同类型的证书吗?

我在App Extension Programming Guide中找到了这个有趣的片段:

要提供OS X应用程序扩展,建议您将包含的应用程序提交到App Store,但这不是必需的.

注意:如果您在Mac App Store之外分发OS X应用程序扩展,Gatekeeper会阻止扩展程序运行,直到用户打开并批准包含该应用程序.此外,如果使用除开发者ID之外的证书对签名进行编码,则用户必须明确覆盖Gatekeeper以打开包含的应用程序以使您的扩展可用.

Debug,Profile和Test Your App Extension部分中的另一个相关代码段:

注意:您必须对包含的应用及其包含的应用扩展程序进行代码签名.

Xcode项目中的所有目标都必须以相同的方式进行代码签名.例如,在测试期间,您可以使用临时代码签名或使用开发人员证书,但必须对项目中的所有目标使用相同的方法.要提交到App Store,请使用您的分发证书来获取所有目标.

macos xcode code-signing objective-c provisioning-profile

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

无效的颜色系统,labelColor(仅给出一次警告)

我在nib load(NSWindowController)时在OS X 10.9控制台上收到警告.

Invalid color System, labelColor (warning given only once)
Run Code Online (Sandbox Code Playgroud)

我正在使用Xcode 6和OS X 10.10来编译我的代码.很可能这个警告是因为NSColor在10.10中为静态文本和相关元素公开了新的系统颜色:labelColor,secondaryLabelColor,tertiaryLabelColor和quaternaryLabelColor.

如何修复此警告?

cocoa objective-c xib nstextfield nstextfieldcell

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

如何表示用户通过电子邮件发送给我的Mac OS X应用程序的崩溃报告?

我正在开发一个应用程序,我已经发送给一些beta测试人员.在启动应用程序的短短几分钟内,用户就崩溃了.当窗口加速说应用程序崩溃时,他复制了详细信息部分中的所有文本并通过电子邮件发送给我.我已将文本保存为纯文本文件,并为其指定了.crash扩展名,这使得它可以像常规崩溃报告一样通过控制台打开,所以我认为我的扩展名是正确的(但可能没有).我发出的版本是由Xcode和Archive选项构建的,因此Xcode知道app和.dSYM的位置.我知道使用iPhone应用程序,您可以将崩溃报告拖到组织者,Xcode将为您进行符号化.我无法找到任何需要Mac崩溃报告的地方.我已经看了,atos但它讨论了内存位置,包括应用程序运行的位置,我没有看到报告中列出的信息.看一下原始崩溃报告,它看起来像是一个早期发布的视图控制器,但我无法确定这是原因还是症状.我真正的问题是; 有没有办法让Xcode符号化报告或工具,我可以直接移交.dSYM文件,应用程序和报告并获取符号化报告?我看过谷歌,但我发现的一切(除了前面提到的手册页atos)都是关于iPhone报告的象征,而不是Mac OS X的报告.

debugging macos xcode cocoa objective-c

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