小编Ken*_*ner的帖子

ac#程序员为i-Phone开发的最简单方法是什么?

我应该使用Mono + c#吗?或者我最好学习和使用目标c?谢谢

c# iphone

7
推荐指数
4
解决办法
678
查看次数

FMDB Wrapper VS核心数据:哪个更容易使用和维护?

FMDB Wrapper VS核心数据:哪个更易于使用和维护?

我很困惑,因为FMDB很老,但仍然有很多开发人员正在使用它,而Core Data是新的,只有3.0及更高版本的sdk支持.

有人说FMDB很容易使用,有些人说核心数据.请帮助我,这样我就可以朝着正确的方向前进.

提前致谢

database iphone core-data ios

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

Swift:如何在变量中保存泛型类型的任何可能实例

我想做的事情的精髓是这样的:

public struct HolderOfWrappers
{
    let anyWrappedItem: MyResource<Any>
}

public struct MyResource<A>
{
    let wrappedItem : A
    let convert: String -> A
}

func holdResource<A>( resource: MyResource<A> ) -> HolderOfWrappers
{
    // Error on this line, A is not Any...
    let wrapHolder : HolderOfWrappers = HolderOfWrappers( resource )
    return wrapHolder
}
Run Code Online (Sandbox Code Playgroud)

就目前情况而言,这段代码在holdResource我尝试构建的最后一个方法中产生了编译器错误HolderOfWrappers

Cannot convert the expression's type 'MyResource<A>' to type '(anyWrappedItem: MyResource<Any>)'
Run Code Online (Sandbox Code Playgroud)

这是可以理解的,因为代码表明 HolderOfWrappers 只能保存为 Any 类型构建的 MyResource,而不是任何可能的类型。我真正想要的HolderOfWrappers是这样的:

public struct HolderOfWrappers
{
    let anyWrappedItem: …
Run Code Online (Sandbox Code Playgroud)

generics swift

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

如何让Emacs magic-mode-alist匹配文件中间的字符串

我是OS X下Aquamacs的用户,默认情况下不会将.m文件识别为Objective-C,而是将它们视为matlab文件 - 来自邮件列表,其原因是维护者感觉到在他向分销中添加解决方案之前,他想要一种清晰的方法来区分Obj-C文件和其他文件.

因此,我试图提出一个适当的魔术模式,有助于正确识别Objective-C文件并切换到正确的模式 - 经过一番思考,似乎所有我需要检查的是存在三个关键字之一:

@implementation
@interface
@protocol
Run Code Online (Sandbox Code Playgroud)

任何Objectve-C文件都应该包含其中一个字符串,并且它们很可能不会出现在Matlab文件中.

然后我尝试用魔法模式alist变体来识别@implementation,我的第一次尝试是:

(add-to-list
 'magic-mode-alist
 '(".*^\@implementation.*" . objc-mode))
Run Code Online (Sandbox Code Playgroud)

基本上 - 在行的开头检查文件中任何位置的@implementation.

将它放入我的.emacs文件之后,似乎没有任何效果 - 在其中打开带有@implementation的.m文件,没有切换到Obj-C模式.

有谁知道我的魔术模式alist条目可能是什么问题?我能找到的唯一例子只是在文件的最开头匹配文本(对于nxml模式),而不是文件中间的字符串.似乎我的正则表达式一定有问题,但正如所指出的,同一主题的一些变体似乎没有效果.

我的.emacs文件中的工作条目为auto-mode-alist提供了今天的正确模式所以我不需要任何关于如何做到这一点的建议,我想以"正确"的方式解决这个问题.

编辑:

感谢下面接受的响应,这是我在.Emacs文件中的最终代码:

(setq magic-mode-alist
  (append (list  
       '("\\(.\\|\n\\)*\n@implementation" . objc-mode)
       '("\\(.\\|\n\\)*\n@interface" . objc-mode)
       '("\\(.\\|\n\\)*\n@protocol" . objc-mode))
      magic-mode-alist))
Run Code Online (Sandbox Code Playgroud)

请注意,我使用"\n"替换正则表达式中的"^"(行首),因为准确确定类型很重要 - 否则.emacs文件本身会以obj-c模式出现,因为@实施在那里.

我发现其他需要注意的事情是,魔术模式alist只在一个文件的开头被赋予一定数量的字符(由magic-mode-regexp-match-limit默认的4000个字符定义),可能是出于性能原因.通常情况下,这足以找到开头@implementation@interface块,但如果您像某些人一样在文件的标题中插入修订注释,则可能需要大幅增加.就像备份一样,我计划也包含使用auto-mode-alist使.m文件始终以obj模式打开的代码,因为我的Matlab时代远远落后于我 - 但希望这种魔法模式的改变可以进入官方发布的Aquamacs至少,如果不是Emacs 23本身(正则表达可能应该加强一点,为此发生).

emacs objective-c

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

为什么要在使用XCode和xcodebuild之间找到区别?

任何人都可以解释为什么在使用GUI和xcodebuild命令行编译相同的XCode 4.x项目时会得到不同的结果?

XCode GUI

  1. 执行清洁
  2. 构建"发布"目标
  3. 建立成功

xcodebuild联编

  1. 执行清洁
  2. 运行"xcodebuild -configuration Release"
  3. 导致以下错误:

    /Developer/usr/bin/gcc-4.0 -x目标c -arch I386 -fmessage长度= 0 -pipe -std = gnu99 -Wno-三合字母-fpascal串-fasm块-Wreturn -Os型-Wunused -variable -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fvisibility = hidden -mmacosx-version-min = 10.4 -c"/Users/XXX/Extensions/NSFileManager_Extensions.m"-o"/ Users/XXX/Developer/Intermediates/YourApp.build/Release/YourApp.build/Objects-normal/ppc/NSFileManager_Extensions.o"/Users/XXX/Extensions/NSFileManager_Extensions.m:15:60:error:ToxicRegularExpressions/ToxicRegularExpressions.h:没有这样的文件或目录**建筑失败**

以下构建命令失败:CompileC"/Users/XXX/Developer/Intermediates/YourApp.build/Release/YourApp.build/Objects-normal/ppc/NSFileManager_Extensions.o"/Users/XXX/Extensions/NSFileManager_Extensions.m normal ppc objective -c com.apple.compilers.gcc.4_0

最后是GUI + xcodebuild

  1. 在GUI中执行清理
  2. 构建"发布"目标
  3. 建立成功
  4. 运行"xcodebuild -configuration Release"
  5. 建立成功

macos xcode objective-c xcodebuild

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

在iOS上使用KVC/KVO的助手类/库更实用/更安全吗?

这个问题实际上是在寻找我知道存在但却找不到的特定类.

几周前,我读了一篇文章,概述了一个使用KVC的帮助类 - 它允许你封装KVC订阅,这样你就可以观察到多个值,而不必经过相同的hander方法,并且还清理了KVC观察者更安全(因为KVC清理非常挑剔且容易出现异常).

所以,在回复中,我正在寻找之前遇到过的助手类,或其他尝试包装KVC以使其更安全和更适合一般用途的例子.

iphone objective-c key-value-observing key-value-coding ios

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

是否可以输出在设备上运行的iPhone应用程序的视频?

我正在为一个客户开发一个应用程序,他将在一个董事会中向一组董事展示它以进行认真的演示.因为iPhone非常小,让他在实际设备上演示应用程序是没有意义的,因为没有人会看到任何东西.

是否可以在计算机或电视上输出屏幕,以便房间里的每个人都能看到正在发生的事情?

iphone

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

在注释视图上使用canShowCallout时的MKMapKit异常

我正在尝试使用非常简单的自定义地图注释视图和标注 - 我创建它时的注释视图,只是将UIImageView作为子视图添加到自身.这很好.

但是,当我在注释视图上调用canShowCallout时,在返回视图后立即在MapKit中抛出异常.堆栈的结尾如下:

#0  0x94e964e6 in objc_exception_throw
#1  0x01e26404 in -[MKOverlayView _addViewForAnnotation:]
#2  0x01e22037 in -[MKOverlayView _addViewsForAnnotations:animated:]
#3  0x01e1ddf9 in -[MKOverlayView showAddedAnnotationsAnimated:]
#4  0x01df9c0e in -[MKMapView _showAddedAnnotationsAndRouteAnimated:]
#5  0x01e0371a in -[MKMapView levelView:didLoadTile:]
Run Code Online (Sandbox Code Playgroud)

我的viewForAnnotation非常简单:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    if ( ! [annotation isKindOfClass:[MyAnnotation class]] )
        return nil;

    MyAnnotationView *useView = (MyAnnotationView *)[myMapView dequeueReusableAnnotationViewWithIdentifier:@"resuseview"];
    if ( useView == nil )
    {
        useView = [[[MyAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"resuseview"] autorelease];
        useView.canShowCallout = YES;  // if commented out view appears just …
Run Code Online (Sandbox Code Playgroud)

iphone annotations mkmapview

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

如何在Xcode 4中创建自定义文本宏?

我今天更新到Xcode 4,我的自定义文本宏不再有效.我找不到有关如何使用Xcode 4自定义宏的任何信息.这还有可能吗?如果有人提出解决方案,请告诉我.

这是我目前拥有"ObjectiveC.xctxtmacro"文件的目录.〜/ Library/Application Support/Developer/Shared/Xcode/Specifications

xcode ios4

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

什么时候设置Objective-C属性保留?

给出以下代码

@interface MyClass
{
   SomeObject* o;
}

@property (nonatomic, retain) SomeObject* o;

@implementation MyClass
@synthesize o;

- (id)initWithSomeObject:(SomeObject*)s
{
   if (self = [super init])
   {
      o = [s retain]; // WHAT DOES THIS DO? Double retain??
   }
   return self
}

@end
Run Code Online (Sandbox Code Playgroud)

iphone memory-management objective-c retain

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