(已搜索过,但无法在此处或在Cocoa文档中找到这个的简单解决方案)
问:如何仅从NSString中修剪所有前导空格?(即保留其他任何空格.)
不幸的是,出于我的目的,NSString的stringByTrimmingCharactersInSet方法适用于前导和尾随.
需要Mac OS X 10.4兼容性,手动GC.
我有一个现有的表'people_table',带有一个字段full_name
.
许多记录的"full_name"字段填充了错误的大小写.例如'fred Jones'
或'fred jones'
或'Fred jones'
.
我可以找到这些错误的条目:
SELECT * FROM people_table WHERE full_name REGEXP BINARY '^[a-z]';
Run Code Online (Sandbox Code Playgroud)
如何将每个单词的第一个字母大写?例如'fred jones'
成为'Fred Jones'
.
我有一个NSWindow,我使用动画代理在自定义时间内从隐形到完全不透明淡入淡出:
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:1.0f]; // Custom timing, 1 sec.
[[myWindow animator] setAlphaValue: 1.0f];
[NSAnimationContext endGrouping];
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试设置窗口的可见性,而在动画出发,动画没有停止.在以下示例中,窗口将短暂显示为0.5可见性,但随后将继续设置动画.
例如
[myWindow setAlphaValue: 0.5f]; // Animation continues after calling this.
Run Code Online (Sandbox Code Playgroud)
问:如何停止动画?
谢谢.
Mac开发人员计划的许可协议明确规定我不会在我的Mac应用程序中实施自己的复制保护流程.
然而,在开发人员文档中,Apple也说:
您可以向应用程序添加收据验证代码,以防止未经授权的应用程序副本运行.
我在这里很困惑.Mac App Store是否为Mac应用程序提供任何形式的内置复制保护?Apple的上述声明似乎表明它没有.
该声明表明,如果我不实施这些收据检查,那么我的Mac App CAN的未经授权的副本将在其他Mac上运行.
我不被允许实现(或者更确切地说,保留现有的)复制保护,但我希望使用Apple提供的各种代码片段和伪代码手动验证收据,只是为了提供最基本的保护级别.这种解释是否正确?
这是Apple的错误传达,还是这真的是如何完成的?
参考:http://developer.apple.com/devcenter/mac/documents/validating.html
谢谢.
(请注意,我不是在讨论复制保护的理念或Apple的方法的优点.相反,我只是对将Mac应用程序带到App Store的技术要求感兴趣.)
我已经做了一些搜索,但找不到我想要的东西,特别是.
我有两个文件:"a.txt","b.txt".
每个都包含一个电子邮件地址列表,以换行符分隔.
对于"a.txt"中的所有行,我需要在"b.txt"中的任何位置检查匹配项.如果是这样,则需要删除"a.txt"中的电子邮件地址.
(或者,如果更容易,可以使用输出创建新文件"c.txt".)
我正在使用Mac OS X,所以我正在寻找可以提供帮助的shell脚本,或指向我如何构建脚本.谢谢你的帮助.
在10.6.6(10J521)和现在的10J537上使用Xcode 3.2.5.
我有一个包含1个目标的Xcode项目:"MyApp".它构建并成功运行.
除了源文件和资源文件之外,Target还包含一个"复制文件"构建阶段,该阶段复制"Sparkle.framework".框架与项目位于同一目录中.
我想复制这个目标.采取的步骤:
做了"清理所有目标".
右键单击Xcode中的"MyApp"目标,然后选择"复制".
将重复的目标重命名为"MyAppTarget2".
从左上角的弹出菜单中选择"MyAppTarget2"作为Active Target.
做了"建立".
问题:
error: Sparkle/Sparkle.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
在线:
#import <Sparkle/Sparkle.h> // In MyAppDelegate.mm
Run Code Online (Sandbox Code Playgroud)
这令人费解!更多信息:
每个构建步骤似乎都已复制到重复的目标中,包括"复制文件"阶段.
Sparkle.framework本身存在于项目的文件夹中.
在"MyApp"和"MyAppTarget2"的"Link Binaries with Library"阶段,我将链接到上述位置的Sparkle.framework.链接二进制文件上的"获取信息"报告它是两个目标的成员.
如果我右键单击复制目标的"复制文件"构建阶段中的Sparkle.framework文件,并选择"在Finder中显示",则会显示正确的Sparkle.framework文件.所需文件存在于Sparkle.framework/Headers/Sparkle.h中
如果我切换回原来的"MyApp"目标,它会构建并成功运行.
我在做一些明显不对的事吗?谢谢.
[编辑 - 已解决]
(大家好.我特别是SQL和MySQL的新手.我知道一些PHP.)
我有一个包含"date_string"列的表.由于遗留原因,这是一个文本字段,包含d/m/YY格式的日期.例如2009年11月22日的"22/11/09".
问题:如何将此列中的所有字段转换为标准MySQL日期格式(YYYY-mm-dd),就地?
或者,如果列类型为文本,则无法就地更改它,如何获取每个现有的基于文本的日期,并在表中的另一列(类型为'date')中创建标准日期?
谢谢你的帮助.
(目前正在使用Xcode 3.2,犹豫是否要转向更新版本,直到它稳定实用,但即将开始新项目.)
问:Xcode 4预览适用于制作工作(即发布Mac/iOS应用程序),还是应该等到最终版本发布?
Q1.我看过Apple的工具状态WWDC视频,他们详细讨论了Xcode的单窗口方法.我的控制台窗口生活和死亡.该窗口是否也集成在IDE窗口中,或者我可以单独显示控制台窗口吗?
谢谢.
需要Xcode 3.25,Mac OS X 10.6,10.5兼容性.
我有一个Mac Xcode项目,它混合了Cocoa和C/C++.某些传统模块需要仅限C的标头.
我创建了一个C头文件:myCTypes.h
我希望在该标题中使用CGPoint.
编译会生成错误:未定义CGPoint.好的,没问题,所以我只会:
#include: "<CoreGraphics/CoreGraphics.h>"
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到了这个:
error: CoreGraphics/CoreGraphics.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
嗯.好的,所以我最好添加框架.但是,如果我右键单击Xcode中的框架组,并尝试"添加现有框架",CoreGraphics不会显示在列表中.格儿.
所以我尝试手动添加它,导航到System/Library/Frameworks.Nup,也不在那里.
所以我查看10.5 SDK路径,再一次,那里有很多CoreXXX框架,但没有CoreGraphics.framework.
有人可以告诉我这里我做错了什么吗?在标题中我需要使用CGGraphics吗?干杯.
编辑
这解决了:
#include <Carbon/Carbon.h>
Run Code Online (Sandbox Code Playgroud)
(但如果有人想告诉我这是不是很好的做法,请随意.干杯.)
我正在使用一些遗留代码来广泛使用这种东西:
// Allocate a look-up-table of pointers.
long *pointerLUT = (long *) malloc(sizeof(long) * numPointers);
...
// Populate the array with pointers.
for (int i=0; i<numPointers; i++) {
pointerLUT[i] = (long) NewFoo();
}
...
// Access the LUT.
Foo *foo = (Foo *) pointerLUT[anIndex];
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这会分配一个long数组,并想要使用它们通用指针存储.
Q1.这种方法安全吗?
Q2.风格方面,如何改进?它需要吗?(类型转换让我心中的恐惧咆哮.)
谢谢.
[我已经阅读了Cocoa内存管理规则,但仍然希望确定,并想知道这是否是一个好的形式.]
我的班级有一个可变字典ivar:
NSMutableDictionary *m_Dict;
...
m_Dict = [NSMutableDictionary dictionaryWithCapacity:10];
[m_Dict retain];
Run Code Online (Sandbox Code Playgroud)
在某些时候,我会在字典中添加一个可变数组:
NSMutableArray *array = [NSMutableArray arrayWithCapacity:100];
[m_Dict setObject:array forKey: @"myArray"];
Run Code Online (Sandbox Code Playgroud)
此时,我相信数组对象已被字典保留.因此,在将对象添加到字典之前,我不会保留该对象.它是否正确?
稍后,我将访问该数组,以供阅读:
NSMutableArray *array = [m_Dict objectForKey: @"myArray"];
Run Code Online (Sandbox Code Playgroud)
Q1.objectForKey返回了什么?它是指向字典中保存的对象的指针吗?或指向对象的COPY的指针?(我假设只返回指向现有对象的指针.)
Q2.这里发生了什么,记忆管理明智吗?我假设'array'指向一个仍然保留的对象(由拥有的字典对象),并且我不必保留该对象来使用它.正确?
谢谢.
我有一些来自C++背景的标题,它使用许多预先标记的"默认值"来声明类型.例如
// Header.
typedef struct
{
float red;
float green;
float blue;
} RGBColor;
// Defaults.
const RGBColor kRGB_White = {1.0f, 1.0f, 1.0f};
const RGBColor kRGB_Black = {0.0f, 0.0f, 0.0f};
Run Code Online (Sandbox Code Playgroud)
...
// Source file.
RGBColor aColor = kRGB_White;
Run Code Online (Sandbox Code Playgroud)
问:出于兼容性原因,我需要将这些标头转换为C. 有没有办法为C头重新创建这些默认值,最好不要更改数据结构本身?
谢谢.