我正在尝试为我的Windows机器创建一个批处理脚本,它循环遍历一个(字符串/十进制)值列表,并使用每个值作为循环内的参数.
下面是一个简单的for循环的例子,我想用它来显示所有不同的版本文件(从我的列表中)
FOR ? in ('1.1','1.2','2.4','3.9') do echo V[value_from_for_loop].txt
Run Code Online (Sandbox Code Playgroud)
我在如何遍历每个项目并在echo语句中使用变量时遇到问题.
我喜欢使用@"string"符号在Objective C中快速处理字符串文字.有没有办法让NSNumbers 获得类似的行为?我更多地处理数字,而且[NSNumber numberWithWhatever:]到处都有电话这么乏味.即使创建一个宏也可行,但我对如何最好地做到这一点的知识是有限的.
我编写了一个UITabBarController子类(调用MainViewController)并添加了一些实例变量,特别是Venue类型的场所.每个标签都MainViewController需要访问场地变量MainViewController.在第一个选项卡中,一个UIViewController名为的子类HomeViewController,我编写了我的viewDidLoad方法并试图输出到NSLog两个...
NSLog(@"%@", self.parentViewController.venue.name);
Run Code Online (Sandbox Code Playgroud)
和
NSLog(@"%@", self.tabBarController.venue.name);
Run Code Online (Sandbox Code Playgroud)
但XCode给出了错误
error: request for member 'venue' in something not a structure or union
Run Code Online (Sandbox Code Playgroud)
我可以从内部访问场地属性,MainViewController所以在那里排除了错误.iPhone模拟器确实看到了两者self.parentViewController并self.tabBarController作为一个实例MainViewController.这条线......
NSLog(@"%@", self.tabBarController);
Run Code Online (Sandbox Code Playgroud)
输出...
2009-06-05 17:54:46.502 Venue[29729:20b] <MainViewController: 0x536600>
Run Code Online (Sandbox Code Playgroud)
由于它被视为一个MainViewController实例,我怀疑使用铸造会有所帮助.我唯一的另一个选择是HomeViewController用场地的副本来初始化,或者我只是做了一些完全错误的' self.parentViewController.venue.name'?谢谢,罗布
我希望能够从Nib中提取UIView子类的实例.
我希望能够调用MyCustomView.instantiateFromNib()并拥有MyCustomView的实例.我几乎已经准备好通过桥接头来移植我正在使用的Objective-C代码,但我想先尝试一下惯用法.那是两个小时前.
extension UIView {
class func instantiateFromNib() -> Self? {
let topLevelObjects = NSBundle.mainBundle().loadNibNamed("CustomViews", owner: nil, options: nil)
for topLevelObject in topLevelObjects {
if (topLevelObject is self) {
return topLevelObject
}
}
return nil
}
}
Run Code Online (Sandbox Code Playgroud)
现在if (topLevelObject is self) {是错误的,因为"预期后的类型是'".我之后尝试过的东西显示了很多我对Swift类型系统不了解的东西.
if (topLevelObject is Self) {if (topLevelObject is self.dynamicType) {if (topLevelObject is self.self) {任何见解都表示赞赏.
我有一个班级,我已经成为一个单身,并且能够使用NSKeyedArchiver保存它的状态,但我无法绕过它将状态拉回来.
在我负载的功能中
Venue *venue = [Venue sharedVenue];
NSData *data = [[NSMutableData alloc] initWithContentsOfFile:[self dataFilePath]];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
venue = [unarchiver decodeObjectForKey:@"Venue"];
[unarchiver finishDecoding];
Run Code Online (Sandbox Code Playgroud)
有了这段代码,decodeObjectForKey会返回什么?它实际上不是Venue的另一个实例,它不会加载任何已保存的值.在我将它转换为单件保存之前,加载工作正常.
我正在尝试创建一个可用于搜索Exchange GAL的应用程序,但是,我发现有关此主题的新4.0文档令人困惑.有谁知道如何在GAL中搜索包含特定字符串的名称(例如"Smi")?我的源代码目前几乎无用,因为我只是试图指出我只想要搜索GAL而不是设备上的本地联系人.另外,如何使用kABSourceTypeSearchableMask?我在这里缺少一些基本的东西.从文档......
来源类型
这些常量标识源的类型.
enum {
kABSourceTypeLocal = 0x0,
kABSourceTypeExchange = 0x1,
kABSourceTypeExchangeGAL = kABSourceTypeExchange | kABSourceTypeSearchableMask,
kABSourceTypeMobileMe = 0x2,
kABSourceTypeLDAP = 0x3 | kABSourceTypeSearchableMask,
kABSourceTypeCardDAV = 0x4,
kABSourceTypeCardDAVSearch = kABSourceTypeCardDAV | kABSourceTypeSearchableMask,
};
typedef int ABSourceType;
Run Code Online (Sandbox Code Playgroud)
当我查询默认的源类型时,我得到"1",这似乎表明默认类型是"kABSourceTypeExchange",这是正确的,因为这是我在我的设置中.我不知道如何超越这一点......
由于整个源概念是4.0中ABAddressBook框架的一个新概念,我不认为人们对此有很多经验,但希望有人可以帮助我理解如何使用上述...谢谢.
我有很多人需要过滤NSManagedObjects,并希望在初始获取中执行此操作,而不是之后过滤数组.我以前在谓词中使用了选择器,但从来没有在获取NSManagedObjects时,例如我拥有所有员工,然后我在NSArray上使用这个谓词...
[NSPredicate predicateWithFormat:@"SELF isKindOfClass:%@", [Boss class]]
Run Code Online (Sandbox Code Playgroud)
...但现在我想根据对象的不同属性做更多的数学运算.我以为我可以做点什么......
[NSPredicate predicateWithFormat:@"SELF bonusIsAffordable:%f", howMuchMoneyTheCompanyHas];
Run Code Online (Sandbox Code Playgroud)
..其中bonusIsAffordable:是我的员工类的一种方法,并会计算我是否有能力向他们支付奖金.但我得到一个错误......
Unknown/unsupported comparison predicate operator type cocoa
Run Code Online (Sandbox Code Playgroud)
我搞砸了什么想法?
我有一个Person类(firstName和lastName的属性)和另一个实体Worker(工资和标题的属性).在我的Core Data模型中,Person实体被设置为Worker实体的父实体.在我的AppDelegate中,我设置了我的映射......
RKManagedObjectMapping* personMapping = [RKManagedObjectMapping mappingForEntityWithName:@"Person" inManagedObjectStore:objectManager.objectStore];
[personMapping mapKeyPath:@"firstName" toAttribute:@"firstName"];
[personMapping mapKeyPath:@"lastName" toAttribute:@"lastName"];
[objectManager.mappingProvider addObjectMapping:personMapping];
RKManagedObjectMapping* workerMapping = [RKManagedObjectMapping mappingForEntityWithName:@"Worker" inManagedObjectStore:objectManager.objectStore];
[workerMapping mapKeyPath:@"wage" toAttribute:@"wage"];
[workerMapping mapKeyPath:@"title" toAttribute:@"title"];
[objectManager.mappingProvider setMapping:workerMapping forKeyPath:@"workers"];
RKManagedObjectSeeder* seeder = [RKManagedObjectSeeder objectSeederWithObjectManager:objectManager];
[seeder seedObjectsFromFiles:@"people.json", nil];
Run Code Online (Sandbox Code Playgroud)
......在people.json中......
{
"workers":
[
{
"firstName":"Rob",
"lastName":"Johnson"
},
{
"firstName":"John",
"lastName":"Roberts"
}
]
}
Run Code Online (Sandbox Code Playgroud)
...现在,当我运行时,没有任何对象播种.如何表达Worker类与Person具有相同映射的事实?我可以将它们添加到该映射但是感觉不对.
在使用...注册Person映射时
[objectManager.mappingProvider addObjectMapping:personMapping];
Run Code Online (Sandbox Code Playgroud)
...我不使用RKManagedObjectMapping方法setMapping:forKeyPath:因为我们永远不会在这个应用程序中遇到一个Person,所以我们永远不会映射它.但我仍然希望它注册.适用于个人的子实体.
我的Obj-C类中有一个ivar,它是一个C数组(我不想让它成为一个Obj-C属性).很简单.现在在我的类的init方法中,我想使用C数组简写init为这个数组添加一些值,如下面的.m所示.但我相当肯定这是通过相同的名称创建一个局部变量而不是初始化我的实例变量.我不能把我的数组init放在接口中,我不能在实现中声明一个ivar.我只是坚持做某种深层复制或者我还有其他选择吗?
在GameViewController.h中
#define kMapWidth 10
#define kMapHeight 10
@interface GameViewController : UIViewController
{
unsigned short map[kMapWidth * kMapHeight];
}
@end
Run Code Online (Sandbox Code Playgroud)
在GameViewController.m中
- (id)init
{
if ((self = [super init]))
{
unsigned short map[kMapWidth * kMapHeight] = {
1,1,1,1,1,1,1,1,1,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,1,
};
}
return self;
}
Run Code Online (Sandbox Code Playgroud) CakePHP大量使用关联数组将大量参数传递给函数.我还没有真正在PHP之外看过这种技术,并且从未看到它在Cake使用它的程度上使用过.我真的很喜欢这种方法,因为看起来在你自己的代码的未来版本中处理新参数会更容易,并且它比简单的一长串参数更具可读性.
举个例子...
function myFunc($params = array('name' => 'rob', 'count' => 5, 'anArray' => array('A string', 5, myObject)))
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
我想这与使用argc/argv类似,但更容易阅读.有没有人有这个方法的优缺点列表,或者知道有关这方面的最佳实践的人?我试过谷歌搜索它,但"关联参数数组"几乎带来了所有编写的编程文章.
此外,是否有一个通过这种方式传递参数的术语?
objective-c ×6
iphone ×4
cocoa-touch ×2
core-data ×2
arrays ×1
c ×1
cakephp ×1
cocoa ×1
command-line ×1
for-loop ×1
macros ×1
nsnumber ×1
nspredicate ×1
php ×1
restkit ×1
singleton ×1
swift ×1
windows ×1