Tag: Objective C

用块创build代表

我喜欢积木,当我不能使用它时,这让我很难过。 尤其是,每当我使用委托时,都会发生这种情况(例如:使用UIKit类,主要是预块function)。 所以我想知道…有没有可能 – 使用ObjC的疯狂的力量,做这样的事情? // id _delegate; // Most likely declared as class variable or it will be released _delegate = [DelegateFactory delegateOfProtocol:@protocol(SomeProtocol)]; _delegate performBlock:^{ // Do something } onSelector:@selector(someProtocolMethod)]; // would execute the given block when the given selector is called on the dynamic delegate object. theObject.delegate = (id<SomeProtocol>)_delegate; // Profit! performBlock:onSelector: 如果YES […]

iOS协议/委托混淆?

这一切都是我的第一篇文章,我会尽可能地精确。 我已经阅读了许多关于iOS的协议/委托实现的文章,但是所有的例子都失败了。 假设我有A和B控制器,并希望从A发送数据到BAh @protocol exampleprot <NSObject> @required -(void) exampledmethod:(NSString *) e1; @end @interface ViewController { __weak id <exampleprot> delegate } – 我正在尝试一些程序 [delegate examplemethod:@"test"] BH @interface test2 : UiViewcontroller <exampleprot> 并在Bm中实现方法 – (void)exampledmethod:(NSString *)e1; 所以我做错了什么?

iOS 9:如何以编程方式更改音量,而不显示系统声音栏popup?

我不得不在iPad上更改音量并使用以下代码: [[MPMusicPlayerController applicationMusicPlayer] setVolume:0]; 但是这个改变的音量和iPad上显示的系统音量栏。 如何更改声音而不显示音量栏? 我知道, setVolume:被弃用,每个人都说使用MPVolumeView 。 如果这是解决我的问题的唯一方法,那么如何使用MPVolumeView更改音量? 在MPVolumeView中没有看到改变声音的任何方法。 我应该与MPVolumeView一起使用一些其他类吗? 但是最好使用MPMusicPlayerController 。 谢谢你的build议!

我应该在哪里保存我想长期保存的数据和文件,以及如何防止iCloud将其备份

我有任意types的文件 – 包括核心数据存储库 – 我需要保留,而不是iOS删除它们。 通常,我不希望iCloud将这些文件备份。 我应该在哪里救他们?

本地化iOS上的剪切|复制|粘贴菜单

我有一些本地化丹麦应用程序的问题。 (语言,而不是糕点) 我已经在我的info.plist中将CFBundleDevelopmentRegion设置为da_DK作为丹麦语,但是出现文本input的popup窗口仍然是英文,即使是在运行丹麦语操作系统的手机上。 乔布斯的名字如何改变这个? 该testing设备是一个非越狱iPhone 4S运行iOS 5.1与丹麦作为其iOS设置,并与丹麦iTunes帐户关联。 我不使用.xibs进行devise。 所有接口都被编程为视图控制器。

@interface和@implementation指令中括号内的文字是什么意思?

我有一个关于苹果的一些示例代码的基本问题。 在.m文件中,类声明如下所示: @interface MyMovieViewController (OverlayView) […] @end @interface MyMovieViewController (ViewController) […] @end @implementation MyMovieViewController(ViewController) […] @end @implementation MyMovieViewController (OverlayView) […] @end @implementation MyMovieViewController […] @end 完整代码在这里 。 看起来像括号内的东西(“OverlayView”和“ViewController”)只是在帮助分解代码并使其更具可读性,但实际上并不影响代码的执行。 但我不想误解重要的东西,所以我想我会检查确定。 我的理解是正确的吗? 谢谢!

malloc:***错误:不正确的校验和被释放的对象 – 对象被释放后可能被修改

我的iOS应用程序有一个很大的问题:它有时会崩溃,没有详细的debugging错误。 堆栈跟踪是空的。 这些是堆栈跟踪中唯一的两行: 在UIApplicationMain的“符号存根: – [_ UIHostedTextServiceSession dismissTextServiceAnimated:]”开始崩溃。 并报告“libsystem_c.dylib`malloc_error_break”。 在com.apple.main-thread 。 Xcodedebugging器(连接设备)上的错误: malloc: *** error for object 0x208a7614: incorrect checksum for freed object – object was probably modified after being freed. *** set a breakpoint in malloc_error_break to debug 我用libsystem_c.dylib在malloc_error_break中设置了一个断点,没有任何debugging器的反馈。 我不知道要解决这个问题。

在iPhone / iPad上获取ARP表

我试图让我的iPad像这里的ARP条目。 当编译代码运行在我的iPad上(所以不是模拟器),我正在丢失标题错误消息。 您可以通过将头文件复制到本地项目中来解决这些问题。 问题在于线 sdl =(struct sockaddr_dl *)(sin + 1); 在这段代码中: -(NSString*) ip2mac: (char*) ip { int expire_time, flags, export_only, doing_proxy, found_entry; NSString *mAddr = nil; u_long addr = inet_addr(ip); int mib[6]; size_t needed; char *host, *lim, *buf, *next; struct rt_msghdr *rtm; struct sockaddr_inarp *sin; struct sockaddr_dl *sdl; extern int h_errno; struct hostent *hp; mib[0] […]

Spritekit – 不从SKTextureAtlas加载@ 3x图片

由于我的示例项目被删除(我认为这将是更容易testing),我会张贴一些代码和图像来说明我的观点。 这里是示例图像 我的地图集设置: 我的启动图像设置: 代码中我添加这些精灵到我的场景 override func didMoveToView(view: SKView) { let texture = SKTextureAtlas(named: "scenery") let test = SKSpriteNode(texture: texture.textureNamed("test")) test.position = CGPoint(x: self.size.width/2, y: self.size.height/2) self.addChild(test) } 这些是我的结果: iPhone 5模拟器: iPhone 6 plus模拟器: 我尝试更改启动图像以使用资产目录。 然后iPhone 6加上似乎高档2倍的屏幕。 它仍在加载2倍的图像,但将其扩展。 我需要它来加载我的3倍图像,并与我的2倍图像成比例。 Gabuh的回答下面指出了正确的方向。 在一个新项目上工作。 但是,如果我使用他的解决scheme来处理我的真实SpriteKit项目,我的3x图像不会缩小。 他们比他们应该大3倍。

将UITabBar定位在顶部

我是iOS开发的初学者。 我的问题是:是否有可能将UITabBar定位在顶端? 我无法将我的UITabBar放在视图的顶部。